In Postgres, you can't join between tables that reside in different databases, but you CAN do joins between tables in different schemas.
You can give each of your users their own schema and they can create tables in that and still join against public tables, etc.
You can assign usage permissions on a schema.
You can use schemas to organise your tables when you have a lot of tables in a database. Remember, if you have a database with one 'users' table in it, then ALL tables that have have foreign key references to the 'users' table must also be in the same database.
Chris