If you set the TMP and TMPDIR environment variables in /etc/profile to a directory that does not exist Solaris will NOT load the desktop environment and you will not be able to log in. There is no error or warning, you just get booted back to the login screen.
Spotted this in an Oracle install when I was testing all the environment variables before actually creating the directories. The oracle directory I set in ORACLE_BASE does not need to actually exist when you log in as it is not used by Solaris itself but the TMP/TMPDIR directory does.
At some point I will write a step by step guide to installing Oracle 10g on Solaris x86 inside VirtualBox, at least then I will have something to follow myself without making mistakes like this!