How to architect modular web applications?
CyberFonic: Depends on your language of choice.I find that an object oriented approach works well for my projects.  I write the core class structure for the shared low-level and common high level functionality.  I then create a separate directory for each client.  In these, I use inheritance to inject custom sub-classes.  In extreme cases, I will replace one module with another.