It's very sad, but it's true.
I have worked in the consumer electronics field for many years, writing software for this stuff. Some of the code is, quite frankly, shit. Commercial pressures (especially in something like the mobile phone market), poor project management, a seemingly never-ending desire to cram more and more functionality in (even though the existing functionality doesn't work correctly), and (in a seemingly increasing number of cases), poor software implementation all contribute to the problem.
Personally, (and I'm sure I'm not alone with this), I would like my phone to work as a phone flawlessly. I would readily give up the camera, the MP3 player, the web browsing etc etc, as long as the PHONE bit of it worked. But manufacturers and the people pushing services to you that you can spend money on (ie - the network providers), don't want this; they would rather you buy another phone in 6 months time in an attempt to replace the buggy crappy one you have already. Unfortunately, your NEW phone is likely to be worse!