Custom personal contact form with webforms We want our users to be able to contact each other directly, but not give away the email address of the user account. 

Personal Contact forms do just this, however, we need a few more fields and other triggers to happen alongside this. Things that webforms already does.

What I'd like to do is use a %get parameter to pass the id of the user they are contacting into the form, and pre-populate the email into a hidden field. This will allow me to use the webform email function to notify user 2 that user 1 would like to contact them. 

So there are two users involved. User 1 = logged in user. User 2 = the person they are contacting.

The url would be mysite.org/webformid?uid=2

Where the uid is the id of contact 2.

Using that id, the webform could pull their email into a hidden form field.

Is this possible?

Heather.
You can use hidden fields in your webform which are associated with user's details, such us email, id etc.