What I have found is the best way to debug these situations with NX is to see what’s happening behind the scenes. First thing you do is find what script is being run upon login from the .cfg files, usually this is something like /etc/gdm/Xsession or /etc/xdm/Xsession or similar. Then I add a line at the top like:
env | sort > /tmp/nxenv.log
This gives you information about the variables that have been set. Then on the next line you can do a /usr/bin/xterm, which bring up a console window. If this opens and works, then NX is having trouble interacting with the desktop in some way. You can then manually start the desktop environment by hand and watch the command spewage to see what happens. Good luck!