una soluzione possibile potrebbe essere quella di generare dinamicamente un foglio di stile per utente.
potresti averne uno di "default", marcando gli attributi da sostituire, una cosa tipo:
codice:
#body
{
background-color: [%background%];
}
sostituirne i parametri con un:
codice:
myCss.Replace("[%background%]","#000000");
e slavarli in un nuovo foglio di stile che viene caricato dalla pagina.
codice:
<link href="<%theUserCssFile%>" rel="stylesheet" type="text/css">
la mia è solo un'idea di come approccerei questo problema, spero possa servirti come spunto...