Merge two drupal views with different base types ('user' and 'node')
Why not simply use a content type only?

You can for example add an optional user reference field to a content type, which points to the user to whom the contact belongs. Then you can embed the content type into the user profile, if you want that. For example by using the Panels project.

For normal users, you could write a few lines of custom code to automatically populate the user reference to the current user and hide the field from them. You could also add a check that they can only create a single contact, if you want that.