I'm not sure if this problem is specific to Linux, or is true for all SysV-ELF style systems. However, I observed the following when working with PostgreSQL 6.5.3 and 7.0:
1. Many pre-compiled versions of AOLserver will have been built against PostgreSQL 6.5.3, since Postgres 7.0 was still in Beta at the time. From a binary compatibility standpoint this is no problem since the API is identical. However...
2. The linking commands cause nspostgres.so to seek the library "libpq.so.2.0". I tried every combination of linker command I could think of to change it to "libpq.so.2" to no avail. The linker must pull the soname from the binary and use it for its searching routines.
3. PostgreSQL 7.0 has a "libpq.so.2.1". If you install Postgres 7, and your AOlserver was built against PostgreSQL 6.5.3, you will get an error when attempting to load the nspostgres.so driver because it is searching for libpq.so.2.0. Therefore, creating the symlink allows the program to load.