ASP.NET2.0のテーマを今更試してみようとしたら軽く一はまり。
Web ページの表示デザイン(テーマ)を動的に変更する方法
http://thesource.ofallevil.com/japan/msdn/asp.net/tips/Theme2/default.aspx
ASP.NET 2.0 での Web アプリケーション テーマの作成
http://www.microsoft.com/japan/msdn/vs05/aspnet/themes.asp
この辺の情報が参考になるのですが、マスターページを使っている場合はこのままではダメで、

    Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
        ‘Request コレクションを使用しているのは、
PreInit イベントがページ実行ライフサイクルにおいて初期に発生するので、dropTheme DropDownList コントロールのプロパティを使用できないためです。
        Page.Theme = Request(“ctl00$ContentPlaceHolder1$ListBoxTheme”)
    End Sub

みたいになります。
手っ取り早いのはHTMLのソースでnameを確認することですね。
で、次に問題は、どうやってそれを全ページに適用するか。
theme プロパティは、Page PreInit イベントの前、またはその中でのみ設定可能なのですが、なんと、マスターページにはPage_PreInitがないのですね。
中の技術日誌ブログさんでもちょっと前に書かれていましたが、結局
Page ← CustomBasePage ← 個別ページ
の構造にするしかないのかなという感じです。
で、CustomBasePageで

    Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
        If Not Request.Cookies(“USERINFO”) Is Nothing Then
            Dim Cookie As HttpCookie
            Cookie = Request.Cookies(“USERINFO”)
            Page.Theme = Cookie(“Page_Theme”)
        End If
    End Sub

みたいなかんじでしょうか。