I put it down to budgetting.
A lot of them, if not all, outsource the call centers used to take the tech support calls and whatnot.
Of course, the company with the lowest budget always gets a lookin, and they are always out to get the lowest running costs as a result.
So, you end up with a lot of low paid, badly trained staff. Some have knowlagde already, but the majority seems to me too not have enough training.
They are trained to deal with inexpirenced users, whom many calls are because they havent plugged in a cable, etc etc.
To be fair, they get a lot of these calls, but this is why they all have a list of things to go through. (often known as a script

)
A lot of these calls get put through these lists, most the time even when the person is a bit savvy and knows its not that sort of problem.
All the biggies seem to have problems tracking a problem too, many times did we ring BT up and say hows the problem going, often to find the logging problem code invalid.
Throw your occasional grumpy student/bored middle age person badly paid workers into the mix (not all of them), and you have a system thats bound to cause problems.