Android Updates: Why Carrier Involvement? Why is it possible that Android users have to wait until their carrier releases an update and iPhone users get their updates directly from Apple?
It has to do with the contracts that carriers have with the manufacturers. They also have to do testing of the deployments, to make sure they "go off without a hitch". If the updates fails for users, the carrier is the one that has to take the service call. They also have to do training for their customer services people on how to handle any update issues.

Besides deployments, they also need to test that the update doesn't compromise the network, or the device. 

Let's also not forget about the bloat ware that the carriers add to the releases. These are applications that the carrier may be getting paid to distribute, another way for them to make some money off the device that they are selling at a subsidized price. 

If you buy your phones outright, you will pay more up front for the device, but buying subsidized, you pay more for it with the higher contract fees. Non-contract plans are cheaper per month, and every carrier offers them, you just have to ask for it. They don't advertise them because they make more money off the contracts.