Thanks for the replies.
What I am now thinking is that all users are stored in the RegularUser business object.
I define another business object called RegularUserRole, linked to RegularUser, which lists the roles that each user has. Some users may only have one role stored in RegularUserRole (either Staff or Student), whereas some may have two rows stored in RegularUserRole (Staff and Student).
If the user only has one defined role, on login, I will copy RegularUserRole.AccessLevel to RegularUser.AccessLevel, and away we go.
If the user has more than one defined role, I will display a pick list of these roles, and the role picked will be copied to RegularUser.AccessLevel.
AwareIM should then display to appropriate visual perspective.
Am I missing something here, or does that sound valid?