Just thought I'd write back to say that (I think!) it had nothing to do with the software version, and everything to do with me knowing more about Oracle than PostgreSQL!
That turns out to have been a mistake: from what I can guess, it means the PostgreSQL service starts before the Oracle environment variables are set.
If instead I simply did 'chkconfig off' and then manually started PostgreSQL (postgres -D /usr/local/pgsql/data >logfile 2>&1 &), then all worked fine, as many times as I liked, and no matter how often I logged off and back on. I dare say some fiddling with the startup script will enable me to do the chkconfig on AND have my environment variables picked up correctly.
Frustrating, nevettheless, but at least it's fixable.
Regards