Matthew Magain has an interesting story of a competition between two teams, one using an existing CMS and the other doing development from scratch for a web site.
The CodeBlacks won.
I am a Drupal fan, I think it is one of the most flexible CMSs around. However, there is no one-size-fits-all solution. The CMS has to work in context of the project’s requirements and needs. Otherwise we might experience what is called a boxed CMS. In such a case, the CMS features turn against you.
The best way to avoid this is to postpone selection of a CMS. Do the content design, the information architecture and possibly process design and then decide whether to use a CMS or not. In fact today we have a range of RAD frameworks that come close to a CMS. But I will always see if a pre-built CMS can provide a solution, especially because all projects have implicit requirements or want to follow industry standards which are already implemented by them. If not I will look at using frameworks, which themselves have wide variety, from the likes of Ruby On Rails or Django or CodeIgniter to the barebone ones like web.py.
Whether we need to develop completely from scratch can be determined by analyzing if the requirements are completely different from what we have seen till today. Then it might be worthwhile to decide head-on to go with custom development. Of course this requires more than just technical skills, this requires experience and knowledge across various CMSs.
Finally, there are pros and cons with every approach. The team skill comes into play to leverage the pros and nullify the cons. When you use third party tools, you create dependencies on them. If the dependencies work against you it can break the project. Whereas custom development can take a lot more time, which can be expensive if you end up reinventing the wheel.
I think in this case, the deadline was in a day. Though it gives us some interesting facts, I do not think it can represent majority of the software projects that go on, it is more of an experiment. I would have chosen a pre-built CMS using which you can quickly build prototypes, like WordPress or CMS Made Simple for PHP to develop a site in a day.