Recent example. Client: "We just want an online shop" - great clickety click, Magento is installed, stick their logo in, tweak the stylesheet to match, call it "done".
Over the next few weeks/months: "Where's the blog?" "How do I enter auctions?" "I want to display products with individual pricing, but sell in cases of a dozen." "My SEO consultant says I need some 'landing pages' - where do I make them?" "This doesn't sign people up to out MailChimp email lists!" "It doesn't work right on my wifes iPhone."
Discuss needs with client, install various plugins, a wordpress blog, tweak the templates to make single-pricing/bulk-selling "work" for boxes of 12 (and kick myself knowing it'll bite me in the ass one day doing it this way…)
Then: "How do I make the auction extend the time if someone bids in the last minute?" "How do I enter products that come in boxes of 6 or 8 instead of 12?" "It works on the iPhone now, but not on a friends 2 year old cheapo Android 1.8 phone!"
Then:
"How do I auto calculate freight costs based on both weight and cubic size, for orders with multiple products?"
(at which stage I start explaining combinatorial complexity and the knapsack problem to the client, and run a warm bath and remind myself "down, not across…")
99% of the time what the client want is "similar" to the other features there are already out there not "exactly the same".
100% of the time they want something that isn't on the standard template that is a huge pain to work into the template you choose from, while it may be alot easier and faster to do it form scratch.
120% of the time the update of the template you choose will break your modification and you have to choose between having a non secure website or fix your modifications (every time)
Template and CMS only work if you know what you are doing and you understand that you are compromising your ideas to fit into the Template/CMS you choose.