Over the past several years I have found myself coding applications that are used by several departments. And when this is the case, you quickly realize that every department has its own needs. Thus I ended up creating these weird application roles to differentiate which department the user belong too and had the UI for the application adjust accordingly. Simple concept, but creating roles for every specific configurable UI option is not the way to go.
So with the latest version of one application, I did away with the roles concept and simply created a "Preferences" panel where users can configure how the UI works. These options are then saved in a Flash cookie (as known as a Local Shared Object) and retrieved the next time the user accesses the application. This way, every user can configure the application to operate based on his/her own needs. The best example of this is a DataGrid were the user that configure which columns to show or hide. Making such components configurable is not difficult using the Flex framework which is build with this purpose in mind.
I find that this sort of application level configuration is something that has been missing from web applications over the years and is something than can be re-introduced with RIAs. So far this practice has been a success and I will definitly put it into use in future applications as well.
One final note, I allowed users to configure the colors of certain portions of the UI. So it is fun to see as I visit users from time-to-time that each of them has selected different colors. Puts a smile on their faces and thats part of our job :)