A question on /etc/passwd file

I have a question here on /etc/passwd file.

There is a user called user_a, when it is defined in /etc/passwd as below
+user_a:x:::::/bin/ksh
after user_a login, the system could not recognize the correct enviromental variable $USER_A_HOME which is defined in .kshrc file (under /home/user_a folder) as "export USER_A_HOME=$HOME"

However, if the user is defined in /etc/passwd as below
user_a:x:38029:10::/home/user_a:/bin/ksh
the system could correctly recognize $USER_A_HOME as /home/user_a

Normally, if the user is defined as user_a:x:38029:10::/home/user_a:/bin/ksh, the .profile and .kshrc file will be launched by system when user_a login.

I wonder the reason is $HOME is not defined in first setting +user_a:x:::::/bin/ksh

I don't understand the NIS system well. Here I want to know if the user_a is defined as +user_a:x:::::/bin/ksh, what will the system execute when it login.

I believe it is because you don't have an entry in /etc/passwd in the home directory field. When the user logs in Solaris gets the users home dir from there. Once that happens it is too late to set it in your startup script. Another way to look at it is consider the home directory something that the user can't set for himself - it is set by the system at login time.

If a user could choose their own home directory and change it after login you could have all kinds of security or other issues come up.

Thank you for the reply.