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:

 

ASP.HttpProfile profile = Profile.GetProfile(userName);

profile.SetPropertyValue("Branch", branchKey);

profile.Save();