allowing a preferred name field for the user

Our system links to Active Directory. This unfortunately means that all user ids logged in the system also follow that convention which is completely meaningless to users, e.g. jdo38456 would be registered to Brian Hubbard.

We would like the ability to link a preferred name to a user id which would then display instead of the username in all instance. To develop this one step further, it would also be handy to store an email address against this person so that their name is clickable and someone can easily contact the person (for example, to tell them to check something in).