Custom Web Programming
It used to be that every time you encountered something online that was interactive (a form, a shopping cart, etc.) it was custom programmed. In other words, a programmer was paid to write code specifically for that project.
Now a days most functionality you see associated with websites is created with already written programs - calendar programs, newsletter programs, shopping carts, etc. Many of these off-the-shelf applications are free, others are very affordable. What's more, "open source" applications can be altered and even pieced together to create "customized" functionality for your site. All of this can be obtained for a fraction of what it cost 10 years ago.
True Custom Programming
This does not mean, however, that the need for custom programming has fallen by the wayside completely. There are still times when it makes sense to pay a programmer to write code specifically for your website.
Such an example is a project we did for web entrepreneur in 2008. He and a few friends had decided to partner in a sports website that over time, they hope, will mean an end to working for others. The site is sportscallengeleague.com and it bills itself as the "web's friendliest sports community."
Our job was to carefully define the functionality the partners required - what they wanted members to be able to do - and then determine how best to accomplish the task within pretty constrictive budget constraints. We did this by using a combination of off-the-shelf software solutions (blog, forum) and custom-built applications (picking games, ranking sport's stars and tracking points).
We also had to determine what was possible within the initial budget and what had to put in additional phases.
It takes longer to build a site like this, and obviously it costs more. But if you have a dream sometimes it's best to build it from the ground up so it does exactly what you want, without compromise. And to a budding entrepreneur with visions of a long and flourishing road ahead, it's often important to own the code, which is frequently not the case when you use or customize existing software.