The bottom line is that the operation of a country's IT infrastructure is a thankless job. There is (literally) no financial incentive to do a good job. There is almost no incentive whatsoever to do a good job; some might argue that reputation and respect are valid incentives but there's not much of that in the government IT world. Build a system where success isn't recognized and you're sure to have failure overall. Why would anyone work for no (significant) money, no respect, no long term benefits, no challenge even (it's not like government systems are cutting edge)?
Pointing the fingers at contractors is simply extraneous information. Good teams do good work no matter who they work for.
Fixing the problems is a non-trivial task. Hell, identifying all the problems is a non-trivial task. The only trivial task is the too common announcement of "oh my god, the world is falling, our country won't survive this apocalyptic disaster that's brewing in our infrastructure".
The reason this crazy system works at all is that it's a distributed system. Failure in one section doesn't lead to failure in other sections. Just like most natural systems (think of the way a river flows, often in separate channels) our infrastructure adapts to problems as needed.
It's interesting that people predict massive problems despite there never being any massive problems. For example, name a single infrastructure event that impacted the daily lives of every American. Katrina, which wiped out a big section of the country for several weeks didn't impact the Northeast, Northwest, etc. in the least (aside from non-stop news coverage). FAA flight control screw ups are probably the most significant failures and note that it's a centralized system.
Government systems need to be operated as distributed systems, managed by many different people, because that is the primary security control protecting us from catastrophic failure. Government or contractor management has nothing to do with this, both options can do well, both can do poorly.