So I am sitting here at a coffee shop next to the University of Florida campus and someone sitting next to me is trying to describe to a client how he can make a website for him to sell DVDs and membership. I think, oh yah! drupal can do that out of the box +1 module.
What's more, as he is going back and forth with the customer, I realize that the customer is distanced from the development. Why not enable the customer to manage subscriptions to the site, manage multiple mailing lists? Why not enable the customer to create his/her own webforms on the fly (no coding involved)? Drupal can do that.
It is apparent to me that the true value of a CMS developer is to enable the customer to manage his/her site after it is set up! Sure, if the user is willy nilly, they can damage the site and this strips a little bit of the post-development revenue for the designer and the owner may be asking lots of questions to the Drupal forum....but hey, why not bill yourself (developer) as a CMS consultant; you design with the customer, build by yourself, and consult your knowedge/expertise on an hourly basis.
Maybe this makes no sense but if I was the guy on the other end of the phone I'd like to think that with some training and a few button clicks can create a new product category later - offsetting some of the upfront needs and costs rather than overbuilding a website.
Disclaimer! - maybe some of the reason I am writing this is because I indeed tend to overdesign rather than rollout and tweak :-) I am especially guilty of shoehorning organic groups to wash the dishes (multiple forums, subgroup inheritance, etc).