CMS means way too many things these days, and most of them (both the things it means and the software that calls itself CMS) are a bad idea. I say this as someone who has deployed not one, not two, not three, not four, but five large scale CMS systems (Zope, Plone, custom thing based on MoinMoin and trac, OpenACS, and finally Joomla). Deployments used by thousands of users for a wide variety of activities.

CMS systems are usually too big to be right for any particular purpose, and so the majority of your development time is spent ripping out the stuff that gets in the way of your users doing what they want to do at your site...Joomla is actually the worst in this regard, though it shines in a few areas (large number of available applications...though I was disappointed to find that 90% of them are absolute garbage and not worth the time it takes to install them, much less the time it would take to make them look right on your site).

Right now, I'm still maintaining the Joomla site, and not terribly happy with it. Since I have to migrate from 1.0.x to 1.5.x, and this is not a trivial project, I'm considering moving to something else. The lazy in me likes the looks of Drupal--all the apps we need (commerce, forums, bug tracker, wiki) would be reasonably easy to put together. But, I think I would be better served by slowly moving all of our very specific requirements (our shop is dead simple, but has very specific requirements for the licensing of our software, for example) out to small custom tools--written in one of our preferred languages--and spend a little bit of time coding shared authentication into the best forums package and the best wiki and the best bug tracker. Since, really, in the end Joomla provides almost nothing for us but a very poor shared authentication system (poor because several of the apps have mysterious bugs that lead to some users being unable to stay logged in throughout a purchase or filing a bug) and a really bad way to update our site data--we only use the "CMS" features for five or six pages on the site, and the editor in Joomla sucks and there is no good way to use the file system for pages.

Anyway, if I had to choose a CMS today, I'd probably choose Drupal, but I think we'll end up with the non-CMS solution to our problems I discussed above. Multiple apps customized to share session data, plus a few small components written exactly for our requirements. Some of the frameworks make this latter kind of deployment easier--Django and Ruby On Rails modules can share authentications reasonably easily.

The thing is, while it looks like you're getting a lot of stuff for free from the existing CMS systems (Joomla, in particular, because it has 80 bazillion available plugins) you actually end up spending a lot of time on customization and cleaning out the crap you don't need. At least, I did. It took me a couple of months to launch our Joomla site, and about a month to launch the OpenACS site before that doing the same job (OpenACS was nicer, by some measures, but it had some serious bugs that weren't getting fixed, and the architecture had become too baroque in version 5 to be reasonably customizable--too many behaviors were baked into the core libraries making it very hard to build custom tools...the docs were also broken beyond belief).