I make no secret of my love Wordpress, and when I’m talking with other developers one of the things I constantly hear is “You can’t use Wordpress as a CMS” - this was a constant theme at WordCamp Portland. Now - for the most part I agree with this statement - but only to a certain extent. Wordpress isn’t the solution to EVERY problem on the web like some evangelists would say, BUT that doesn’t mean that it can’t be used as an effective small-to-mid size CMS solution.
Why would I want to use Wordpress as a CMS?
extensible plug-in architecture - I can’t stress how much power this gives a developer with a working knowledge of PHP, and if you don’t write your own there literally tens of thousands of existing plug-in out there to do most anything you could want.
access to the wordpress administration interface - Happy Cog designed it, what else is there to say?
access to one of the best user communities in existence - There’s a TON of nice people using Wordpress, and they LOVE it - when was the last time you saw an ad for ExpressionEngineCampDesMoines?
it’s easy to develop for - The templating system is well thought out and powerful, and once you learn how to harness the power of custom hooks, actions, and filters you’ve got a very powerful framework at your fingertips.
Case in point: Here’s the last project that I did while at NEMO for local Portland, Oregon ski resort Timberline Lodge:

The client came to us using a custom version of ModX that someone had hacked together for them a few years ago. Although I had never even heard of ModX - I correctly guess that they was only using a tiny subset of it’s immense feature-set. Wordpress made the most sense because the client wanted a strong SEO ranking, an intuitive interface that his staff could pick up easily without a lot of training, as well as something where the presentation was de-coupled from the CMS allowing him to update the front-end easily.
Built on a single Wordpress install, this site allows for management of it’s custom data through the use of a number of custom plug-ins that read / write from their own custom database tables. This allowed me to leverage the Wordpress framework while still using a non-post like data structure. Bits like this are used throughout the entire site, but most notably on the conditions page, where the team at Timberline is able to update all of the recent weather data through the Wordpress admin interface.
The page structure is managed through the use of flexible “tag grids” to build the subpage grid structure. Pages are just posts, and on the desired page shortcode is used to create a grid of posts based on the tags provided as parameters to the shortcode…. like this:
[tag-grid tags="lodging, history"]
Which would a retrieve a list of posts tagged with “lodging” & “history” and would produce a grid that looks kinda like this:
The addition of this “build-your-own” grid system gave me the flexibility to manage all of the “pages” of the site - no matter where they sit in the site structure - as regular post objects with little-or-no data differentiating parent from child, or top-level from third-level.
The site also allows external social networking tools to do some of it’s work. We’re bringing in the contents of a Flickr group to act as the photo gallery, and the “likes” of the Timberline Viemo account as a video gallery. We’re also using the Timberline twitter account for external communications that provide up-to-the-minute weather reports via SMS without lifting a finger. As with other parts of the site, all aspects of the connections to external tools are written as custom plug-ins and managed through the Wordpress interface.
I would say that people who categorically dismiss Wordpress as a CMS option most likely just don’t know how to use it well enough.