I don't know a whole lot about Linux's dynamic loader (or anything else), so I'm getting into speculation here... perhaps someone else is better placed to help...
but, regarding your loader debug output, I'd expect there's a section there where it's talking about trying to find libpq (perhaps without the .so or library version extensions), and iterating through some series of directories before giving up and calling it a day... it might be interesting to compare loader debug output when nsd is run as root and as nsadmin to see what difference there is in searching for shared objects...
another thought regarding your nsd-postgres - if LD_LIBRARY_PATH is undefined when nsd-postgres is called, the final value that aolserver will inherit is ":/usr/local/pgsql/lib"... it's possible that the empty path component at the start of that is confusing the loader... it's a stab in the dark, but you might try changing that to just
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
and see what happens...