Perhaps something similiar to the State pattern would work. However, your question seems contradictory, at least to me, in term of semantics
You mention each kind of user has it's own functionality and then you mention that properties must be set for each type of user. There is a difference on how you would implement this based on which statement is correct. Functionality implies 3 sets of business logic, properties are just that.
p.s. you didn't appear to attach any code.
Chris Bint, Oct 11, 2010