Look at the layout strategy, the theme and rendering strategy.
There are classes you can overide to get the thing done the way you want.
look at previous post for this. and also the wiki.
that is the proper way to do it.
You can also look in the jsp of the layout, how the css are injected.
you may change this / or add the thing to get your thing done for each user.
with the "defineObject" stuff, you can get the request, then the user (if logged), and then build a specific jsp tag to inject the right css depending of the user.
that is the proper and minimal way to do it.
another way, more quick and dirty.
if you have a portlet that is in all the pages (lets say the UserPortlet).
you can use the feature of "each portlet can add it's own css stylesheet", to add a css depending on the user.
This css is supposed to be there only for the portlet, but the css item can impact the whole page.
this overidding css can change the logo, some colors etc...
you can build a portlet that show nothing, and add it in all the pages, instead of using the UserPorltet or whatsoever portlet made for other things.
there is a previous post about how to add a portlet on all the pages, direclty in the layout, instead of adding it in all the pages descriptors...
look at previous post for all this...