It isn't education, it's the lack of experience. We've outsourced so many of the entry level jobs, where are the young people supposed to learn? That's the real cost of outsourcing...without an entry-level position and ability to learn how to troubleshoot, there's no place for kids to learn how to do their jobs.
Most of the really good systems engineers I know started on the help desk, worked desk-side support and then did infrastructure support (servers/network/storage/security). They understand that their jobs still come down to delivery of solutions to the end-user. They understand that the end-user doesn't care what backend BS broke, it's just that they can't do their job. We're missing that at the mid-level...and most of the really great infrastructure people are in their 40's now.