The analysis is way to simplistic. An IT career can cover several distinct skill sets. A helpdesk person will not move into a network position or a programming position, except at an entry level. Each skill set has its own problems.
At the entry level, if you don't have a college degree your best opportunity is a helpdesk position. It's tough to get a higher paying programming job unless you have the BS/BA.
Many jobs will go unfilled. You may have 20 years experience with Cobol, JCL, C#, php and perl, but if the job requires J2EE your out of luck. They will end up hiring someone with 2 years of J2EE and nothing else. And pay them less as well. Companies will leave the jobs open rather than train someone.
If you've got 10 years of desktop support experience you might be able to get a sys admin job but you'd probably have to take a pay cut.
For those at a manager level, there are even fewer opportunities. Desktop support people are not looked upon by upper management as being as capable as programmers. A larger protion of IT managers comes from the development side. Why is it a developer that know very little about PCs can manage a tech support department, but a techie (even with an MS) isn't viewed as capable of managing developers.
Then there is the idea of what the individual considers opportunity. I would agree that there is plenty of opportunity for those just starting out. But upper IT management positions are very few and far between. For those who want a Director or VP level position the well is pretty dry all accross the US.