Ja, contrib.admin hängt leider von contrib.auth ab. Die Abhängigkeit von contrib.session finde ich nicht so schlimm. Als ich das letzte mal guckte, konnte man contrib.sites auch weglassen. Ich habe mal versucht, ein anders (mandantenfähiges) User-Objekt zu konstruieren, aber ohne entweder massiv Code für den User zu kopieren bzw. zu verändern oder große Teile des Admin-UIs neu zu bauen, gibt es da keinen Weg. Das Problem wird auch nur noch schlimmer, wenn du 3rd-Party-Code einsetzen willst. Der bezieht sich eigentlich immer auf das vorhandene User-Objekt.
Wenn du nur einige neue Attribute haben willst (und keine 3rd-Party-Komponente das ebenfalls versucht), kannst du wie in
http://docs.djangoproject.com/en/dev/to ... bout-users beschrieben vorgehen.
Die andere Alternative ist eine Unterklasse, doch auch dafür musst du einiges ändern, denn das auth-backend denkt nicht im Traum daran, deine Unterklasse zu erzeugen, sondern erzeugt immer "echte" User (siehe z.B. auth/backends.py, Zeile 18). Ich hatte mir damit beholfen, mein User-Objekt (welches von dem Original erbte) danach in "contrib.auth.models.User" hinein-zu-monkey-patchen.
Stefan