As an advisor to several software companies, I'll tell you why most companies who have copyright assignment policies have them: they don't actually want outside contributors. Really.
Open source is now the mainstream for software development. But that doesn't mean that companies who now feel obligated to open source their code in order to complete *like* the idea. They prefer to use open source as a distribution model only, and keep code development internal. It's less work for their engineering staff, less work for their lawyers, and they don't expect outside contributions to be useful anyway.
From my perspective, this is a fine attitude if a company is honest with itself. Where trouble develops is when a company wants to "keep its cake and eat it too", but having draconian copyright control by still having a program to "build its developer community". Since these two goals can never be brought into concordance (think Sun), the projects will be considered failures and the company will blame "the open source community" (whoever that is).