Some websites fail to deliver the goods. It's not a pleasant conversation, but it is one that shouldn't be ignored. Many businesses set out with wonderful intentions only to come up short in the end from either a lack of imagination, poor planning, or poor follow through. Take it from someone who has been through the process countless times now-sometimes you need custom programming to support your web development.
Now don't get me wrong. There are a lot of great web tools and modules that plug in fantastically right out of the box. We use them often and when it suits the client's needs, there really is no reason to spend money on reinventing the wheel. That said, every business is unique, and sometimes a client's best option for web development (even if it's just one aspect of one web page) rests in the use of custom code.
When a programmer writes code specifically for a client, the client gets exactly what is needed. This translates into a better user experience, which invariably leads to more potential customers becoming existing customers.
It just makes sense. Developing a tool based on client needs is more efficient and intuitive than a tool that is bent and shaped from its original form into something that (mostly) works.
So don't let existing modules determine your website's functionality boundaries. Reach for what you really want in a web experience through custom programming-your customers will be glad you did.