I hadn't done this in a while, so I just tested it again to be sure. This is what I'm doing:
1) Using GetProfileByName and GetCommonManager in the same form.
2) Upon opening the form, I let the logged-in user's AccountName send itself by default to the two web services.
3) The resulting datasets show the profile data of my user and limited profile data of the user's manager.
4) I simply make a text box that defaults to the "Email" attribute of GetCommonManager. If I want to get the email of another person's manager, I just have to have that person's AccountName (i.e. ccobb, but not domain\ccobb).
I am not familiar with the part that you are referencing here:
"it will only give you the common manager with someone else and not their supervisor..."
For me, it returns the "manager" of that person as determined by AD. Just to be sure, I created another field named "username" and made a custom button with these rules:
1) Set AccountName (GetProfileByName) to Username
2) Set accountName (GetCommonManager) to Username
3) Query GetProfileByName
4) Query GetCommonManager
After I type a username in that field (i.e. ccobb) and push the button, the Employee text box changes to that person's PreferredName, and the Manager text box changes to the email of that person's manager in AD.