Why can't I download an app over 20 MB onto my iPhone 4 connected with a 3G network? What is the reason it doesn't work? Is there a way to do this without the computer and without a WiFi network?
No - there is a 20MB file download limit size so as to limit congestion on the 3G networks, and is set (I think) by the carrier, so cannot be changed by users.
Just think of it like this, there are millions of iPhones users and if you considered only 1,000,000 of them downloading a single 20MB file over 3G would be 20,000,000MB which is about 20,000GB going through their servers every time those 1,000,000 users download one 20MB app
So if they didn't set a limit it would likely be in the billions of GB's every week
Sorry, but what you're saying doesn't make sense. Firstly, a single 3G reception tower can't possibly support 1 million users. At the most, may be 10,000 per tower. Once the sign reaches the tower it uses a normal T1 or fibre like connection - where bandwidth should not be a problem. It's more likely that Apple bows to it's commercial contracts to mobile carriers rather than respect it's customer base. After years of using Apple's products I think Microsoft and other vendors are more user friendly and respects what customers find user friendly.
He didn't say 1 million hits on the tower, he said one million at one time hitting the server.
And even 10,000 users hitting a tower downloading a 1.6 GB app would pretty much lock up that tower.
Yes Apple has to make agreements to mobile carriers otherwise there is no iPhone as they all say we don't want your phone on our system. Just like your friends at Microsoft have done with Windows Mobile Phone 7 Mobile. But if you think other vendors are more customer friendly I would advise you to look at the polls in the trade magazines, etc. and, if this is important to you, go with the company with the highest rated customer satisfaction and customer service ratings.
Personally, I believe it's a carrier issue. That being said, Apple may request it to prevent issues when trying to update a very large app, i.e. a nav app.