At my work place we have to build or rebuild sites for different customers.
Most of the times, our customers want to have a CMS to manage their site, because they want to feel empowered with the ability of modifying content.
Our weapon of choice has been Drupal, and it has worked nicely. Initially, I thought there were limitations to using a CMS, but as I did more research on the various modules, many of my concerns were solved.
One very useful module is CCK. In conjunction with Taxonomy you can make your site behave as you like.
However, business logic is not very easy to manage with a CMS. So, probably you either have to develop your own module or use a php script page and so forth. CMS applications are known to get disorganized. A nightmare could be debugging php scripts that are embedded within pages. A slight change can screw up a whole lot.
Either way, CMS solve most of my problems as of now, but things are a bit boring, especially when you have to do the same thing over and over and over.
MeasureIt