A login shell is one that is started when you login. If that shell (or one its descendent processes) starts another shell no further login is required (the user is already logged in) and the new shell is a non-login shell. Any shells started from the GUI desktop are non-login shells.
Can you be more specific about "user environment"? It could have several meanings, depending on the context in which it is used.