One thing you could do is get postgres to log the
queries it receives, and see if JBoss is indeed
checking the existence of the other tables. (Start
postmaster with the -d 2 flag.)
This is a problem in the Postgres JDBC driver implementation of DatabaseMetaData getTables() method which the JBoss CMP implementation uses to determine whether the tables already exist or not. There is a postgres patch for this to make it work correctly under 7.2.x, however the pre-built driver jars don't seem to include this patch. The only alternative seems to be to download the Postgres source and compile the driver jar.
Here is a reference to the patch: http://fts.postgresql.org/db/mw/msg.html?mid=1361097
If you find another work around, or a pre-built jar somewhere, I'd appreciate hearing about it.