Here's the code by which one authorized user can access another's personalization data:
branch = Profile.GetProfile(userName).Branch;
<Yawn/> That's well documented. But here is the code by which the authorized user can MODIFY another's personalization data, which is not so well documented:
<Yawn/> That's well documented.
ASP.HttpProfile profile = Profile.GetProfile(userName);