Finder doesn't launch when a specific user logs in
First, make sure the user is the owner of their home directory.  In Terminal, sudo ls -lFad /Users/(username) and that the permissions are set at least "rwx" for the owner.  Likewise, for the /Users/(username)/Library/ folder.

There are temporary cache files in /var/folders/(two letters)/(more characters)/ for each user.  You can find the specific one for your user by doing sudo ls -lFad /var/folders/*/* and searching for the one which is owned by the user.  Moving this entire directory someplace else (like, /Users/Shared/temporary/) may allow the user to log in successfully; but, I doubt it.  A cache corruption should be fixed automatically.  But, in the interest of completeness, I'll list it here anyway.

There are some files in the user's Library/ folder which (if corrupted) might cause the login to hang.  This list is arbitrary and not guaranteed to be complete, but it is a list of the most likely suspects.  You could move these (or, even, all of the preference files) and systematically replace them to see what is causing the hangup, assuming the login works when the files are moved away.

Files in ~/Library/Preferences/

.GlobalPreferences.plist
com.apple.BezelServices.plist
com.apple.dock.plist
com.apple.dock.db
com.apple.finder.plist
com.apple.loginwindow.plist
com.apple.QuickLookDaemon.plist
com.apple.systemuiserver.plist
loginwindow.plist


Files in ~/Library/Preferences/ByHost/

.GlobalPreferences.(long string).plist
com.apple.windowserver.(long string).plist


Files in ~/Library/LaunchAgents/

(could be anything)


Files in ~/Library/LaunchDaemons/

(could be anything)


Again, this may or may not solve your trouble; but, it is a good starting point.