From what I remember, outsourcing IT was a trend in the early 90's (91-93?). At the time, I was contracting for the DoD, so it wasn't high on my radar. Outsourcing for other business functions has been around for decades, though. Payroll, for example - does your company actually print/issue its own paychecks, or do they use ADP or Ceridian?
Ultimately, outsourcing (IT or otherwise) depends on how crucial the outsouceable work is to the corporation, and how comfortable they are in surrendering complete control of it.
If it is a task requiring commodity knowledge that isn't closely related to a corporation's business (Payroll, Accounting, software development) and the contract house can provide the service more cheaply than the corporation can do for itself, then contracted resources can be used so the company can focus on what it does best - manufacture cars, provide health care, etc.
As mentioned in other posts, companies will keep mission critical projects close to home where they can have more control.