So, you are talking about having an engine that would be common across sites, but the specifics are, well, specific to each site? Well, obviously you'd pass the right objects around, initialized with the right values from your config file(s). *shrugs* This is the reverse problem from the one the OP is proposing to solve. His problem is how to have an engine, like Mozilla, that would delegate tasks to various expert systems. The problem you're describing is how to customize the engine on the fly so that it behaves differently, depending on the context. I'm not seeing how solutions to the one deal with the other.
We are the carpenters and bricklayers of the Information Age.
Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose
I shouldn't have to say this, but any code, unless otherwise stated, is untested