My experience postgresql work good on NFS. Of course, use NFS over TCP, and use noac if you want to protect your database even more (my experience is NFS client caching doesn't lead to an irrecoverable database however)
I've encountered problems with RHEL4 as a database server and a client of a Netapp filer, due to a bug in the (redhat nfs client)
Postgresql uses BSD read/write semantics. The BSD semantics mean an IO call (either read or write) is atomic.
Linux uses system V read/write semantics. The system V semantics mean an IO is NOT atomic and can be interrupted.
A read call got interrupted (due to the bug in the nfs client), which meant the IO call kept waiting until infinity.
It even caused all other IO done against the inode to be waiting, leading to a situation where the server needed a reboot to be able to function propertly.
frits