Very few commercial Web sites do not have a Content Management System (CMS) these days. The tools to create an easy way to add and update content for your site are easy enough to use and implement that even small businesses can easily put together a Web site using WordPress, Drupal or Joomla with or without the help of a Web Design and Development firm. These 'stock' installations of these popular Open Source Content Management Systems offer a lot of great features that the average company will be able to use, and skinning them so that they look like a company's unique identity can be quite simple to do if you are just wanting to change basic colors and logos.
Larger Web sites, however, can be much more complex to set up, and often have unique needs that the basic installation of one of these free, Open Source systems do not have 'out of the box.' For instance, Drupal might have a user registration module, but the entire workflow and registration process for your organization might have drastically different needs. The question is: do you compromise what you want, or get your Content Management System to work the way you want it to? I will always recommend the latter. There are so many options out there that you should never have to compromise your vision.
There are three ways to approach the challenge of truly unique needs and requirements:
1. Modify an Open Source Content Management System to suit your needs.
Again, this is something that I've done countless times and it definitely possible. If you are drastically modifying the core of the CMS, I would strongly recommend finding a company that has a lot of experience with the Content Management System you are using. You want to make sure that it will be relatively painless to upgrade the core system without making too many modifications. A less experienced programmer might unknowingly make a change to the Content Management System's underlying functionality that will prove problematic later on.
2. Find a Content Management System that has the functionality you are looking for, or something very close to it.
This might involve moving towards a licencsed, proprietary Content Management System. There is certainly nothing wrong with this option, and many larger organizations have found that the Open Source CMS options out there are good, but not tailored towards the larger, enterprise mindset and need for scalability. There are plenty of great licensed CMS platforms out there, ranging anywhere from $5,000/year to upwards of $100,000/year and, like anything else, the more you pay, the more flexibility, expandability and technical support you will get. You will be able to get the system customized to your liking as well by working with either the CMS company itself or a preferred vendor. Obviously, companies and organizations with little to no annual licensing budgets will quickly find that what they are looking for is out of reach, and might go back to looking at the Open Source options.
3. Create your own Content Management System
Some times, there are just such specific work flow and functional needs for your Web site or Web-based application that it does not make sense to use either a standard Open Source CMS or another proprietary one. For a site that interfaces with other very unique systems, has unique user/member needs, or has only one aspect that needs to be controlled by a WYSIWYG editor, some times it makes sense to just develop a custom Content Management System that handles these parts of your Web site. The advantages of a customized CMS is that it does EXACTLY what you want it to, the way you want it to. The drawback, of course, is that if you want to change Web Development vendors, you will want to make sure that your new vendor can work with your system. The benefit of an Open Source system is that there is a large community of developers familiar with the system, and the benefit of a proprietary system is that most of the time there is a highly qualified preferred vendor network that can help you if you need to change Web Development providers.
Choosing a Web Content Management System is not an easy task, but the most important thing to keep in mind is that your CMS should not determine what your Web site can do. Make sure you find the one that will let you and your organization accomplish its goals.