SL6: Non-standard home directories, Error: `Could not chdir to home directory` upon login, but `cd $HOME` works?

It could be an SELinux issue. Check /var/log/audit/audit.log for any related messages. See this informative post for more information, including a possible fix:

# chcon -t home_root_t /homedir/stefanl

The correct command without setting SELinux to permissive is: #chcon -t home_root_t /homedir (note the missing stefanl directory)