When I download a video game from the publisher's website, it typically needs to update itself several times before I can play it. Why can't the developer simply put the patched version of the game up for download? I assume there must be technical problems with this, but what are they?
A few reasons that I can think of off the top of my head -- I'm sure others will have reasons as well.
They have to distribute patches for the existing users no matter what. By doing it this way, they minimize the amount of work they have to do on their end.
Building new complete distributions takes a lot of time -- especially QA time. They would have to make sure the new build didn't have any bugs in it, essentially repeating what testing they are doing with the patch build.
If they did a complete version, they would have to deal with people downloading the complete game again instead of the patch, which would mean more bandwidth usage. Perhaps they have mirror sites -- if the game is large, they would potentially have a bunch of mirrors downloading the new content just because it's new. Patch files are typically smaller, so the burden of having a bunch of mirrors download them is smaller.
As Dennis said, it's mostly reason #2. It takes a lot of time and effort to create a new distribution version, and this is a seperate process from creating the patch version. Creating patches is simply faster and needs to be done anyway.
But even more so, once you have had several complete versions of the product available for download, each new patch must be tested against each full download version in some cases. For a developer/publisher it is much better from a support point of view to have everyone download v1.0 full, then apply each individual patch successively. Because that's the process that must work for everyone.
There's also the issue of people having to change settings to get a game to work (on PC) and the installwr might obliterate though. To make the installer fully 're-entrant' where it leaves the right stuff intact yet cleans up the traces it should clean up imposes even more QA and user support risk. Plus indeed, bandwidth and user annoyance.