If this issue is a result of a difference in the environment when logged in as nsadmin compared to root, it might be worth trying:
su - nsadmin
su
bin/nsd76 -u nsadmin -g web -t service.tcl
That will run the command in a root shell but with the environment set up by the nsadmin login. If it then works, you know the issue relates to the shell environment. From there you can probably work it out by doing
su - nsadmin
env |sort >/tmp/nsadmin.env
su -
env |sort >/tmp/root.env
diff /tmp/nsadmin.env /tmp/root.env
and checking those diferences one by one until you discover which one
is the cause of the problem.
BTW, if you can do an RPM install using my RPMs, that would be one way
to totally avoid this sort of thing... they seem work for both port 8000 and port 80 under RH 6.2 and RH 7.1. nsd is then always started by root in the normal RH daemon startup environment.
I think that starting up server processes is best done in a known, somewhat standardized way (such as in an init script) rather than in an interactive shell which may have all sorts of modified stuff set in its environment...
In general, it may not be productive to work on OpenACS 3.x install issues for 'days', when the RPM-based approach exists and takes minutes. I created them precisely so that it wouldn't be necessary to "fight" to get OpenACS installed and working.
Is there something the RPM install doesn't do that you needed, or some other special reason for your doing the installation by hand?