OK, this indeed turned out to be a brain-dead problem (as I had feared). I found at Pascal Scheffer's helpful site (
http://pascal.scheffers.net/openacs/pgupdate/x72.html) a tip to strip out all lines that begin with 'connect' from the dump file.
There were indeed several switches between the postgres and nsadmin users in my dump file--notably from the lines that created all the tables (as nsadmin) to the ones that inserted the data (as postgres). pg_dump was barfing on the switch. (Note: this was a dump file created with the -d and -D flags.)
Mystery solved. Thanks for the direct help, Don, and the indirect help, Pascal!