A CLA does create a huge resistance for contributing. It requires the potential contributor -often a software developer- to lobby the lawyers and managers of his organization (which may means months of painful, boring, unpleasant, internal lobbying) and to get a legal document signed by official representatives of his organization (in a large corporation, it is difficult). That contributor won't make the effort for an unknown free software (he/she might make that painful effort for a very popular software).
CLA are probably easier to accept in very small organizations like small start-ups or SMEs -because the developer can just go directly ask his boss = the SME owner or manager-, but people working in them are less likely to contribute to an external free software project.
It also remove the possibility of small contributions (someone sending you a few dozen lines of patches won't bother to get the CLA signed, and if the CLA is necessary to submit the patch, he won't even start working on that small patch), and this is how you get initial contributors.
So as a software developer and free software friend, I would tell you to avoid CLAs.
Of course, the lawyers of your organization will tell you the opposite (because lawyers also need to prove themselves useful, and because they can find horror stories, or because they think of relicensing the free software....).
BTW, lack of a formal CLA procedure is perhaps one of the reasons making github so successful.
I believe you first should make your free software popular and successful and attract small contributors; for that you need to avoid CLA.
In case it is not clear, I am advising not have any CLA at all, not adding some CLA later.