I plan to build a network of city-websites where each website supports a community in a particular city.
The home page will display a 'city-selector'. Once a user has selected a city, most content (and I am aware that the problem hinges on what 'most' means) displayed on the website switches to content only relevant to the chosen city. When the user switches to a different city, content from that city will be displayed.
Basically there is shared data (user-records, logins, some user-generated content, FAQ's, store and other common pages) and pages that should only be displayed if a particular city is selected. I read something about the 'Domain Access Module' that might be able to help in a situation like this but I am not sure.
I see two ways of doing this:
a) A separate Drupal installation and database for each city
Each city runs on a separate database which makes shared data and global Drupal changes difficult.
b) One Drupal installation for all but with a city-filter respected by almost every installed Drupal module
This makes data sharing and global Drupal changes trivial but forces every Drupal module to be aware of an active city-filter (which might mean hacking up the PHP code of these modules which I would absolutely try to avoid).