Hi Francis,

I agree with all the points you mention. (I am only saying this so I 
don't have to quote any specific point ... just kidding)

You are right when thinking that some kind of specialization is always 
necessary. CMSs can do (and be) a lot of things. I view a CMS as a 
method to access and transform content living in a repository. 
Manifestions of these repositories can be news sites, forums, blogs, 
shops, corporate sites and what not. IMO the access to this repository 
is the hardest part from the programming standpoint. If it is fairly 
specific (like only tables for blog entries and comments) it will be 
hard to make a corporate website out of it. If the repo is generalized 
too much the implementation can get really difficult. One would have to 
find the sweet spot. The biggest challenge though is an easy to use and 
simple interface to the repository. Usability is the key here.

In a more generalized system, like the one I am trying to achieve, I 
think it is crucial to work with a heavily categorized system and store 
all the data in a big tree. Although this brings not only benefits. But, 
  as you suggest it is nearly impossible to address all possible use 
cases up front. Customization is always necessary. A good system that 
tries be flexible must allow for easy customization and extension.

> So, to get back to the original post, I'd ask first: What is it that the 
> web site's supposed to do, anyway?

A good question. But not for building a flexible CMS. This is the golden 
question to ask a customer who needs any kind of web site in the 
planning stage of a project. The most important question of all.

For a CMS like I plan the most pressing question is: How do I program a 
blog that can later be a forum and a shop with customer relationship 
management including email marketing capabilities? It might not even be 
possible.

It is fairly complicated to describe what exactly I plan to do. But if 
you look closely at the functionality of ezPublish and Drupal you might 
get a feeling. MCMS will be some kind of mixture between these two (an 
others).

Sascha