Non tutti i browser lo gestiscono, ma Mozilla e famiglia mi risulta che lo gestiscano correttamente: l'utente puo` scegliere lo stile che preferisce.

<link rel="stylesheet" type="text/css" src="normale.css" />
<link rel="alternate stylesheet" type="text/css" src="speciale.css" />


Per il secondo punto, se gestisci i cookies da server, puoi scambiare l''attributo rel nei due casi; non so se e` possibile farlo da client (tramite la gestione dei cookies da JS).