Boombatower Development created two profile related modules. The modules can be used together to create a highly customizable profile interface.
Both modules seem to have taken off rather quickly with a good number of hits in the usages statistics shortly after their release.
Relate profile field categories to particular roles, instead of all fields being related to all roles. Use profile to define all user data fields, but restrict which fields are related to users of a particular role. The interface allows you to relate profile field categories to roles.
Restrict editing of profile fields with an auto generated permission. Only users with that permission will be able to edit the field, but the field display will follow the standard visibility rules.
Take a look and lets us know what you think.