BSD allows derived works that are not, as a whole, BSD-licensed. The danger here is that a new contributor (or, really, any contributor) could submit a code contribution and then later claim that his contribution was not BSD-licensed. Whether this would hold up in court probably depends a lot on the exact circumstances of the transfer -- imagine an ambiguous case where someone posts a patch to a mailing list and simply says, "Look at this neat new feature I wrote!" without expressly granting it to the project under a BSD license. (A project that requires signed agreements would respond, "Thank you, but before we can accept this into our code base, please legally acknowledge that your contribution is BSD-licened".)
A GPL-licensed project is less vulnerable to such ambiguity. The relevant legal teeth in the GPL are in section 8:
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License...
In my example of an ambiguous contribution, there is no ambiguity with the GPL. The modified work is necessarily GPL-licensed, and the contributor could not post his modification to the mailing list without granting GPL rights to it (since posting his modified version constitutes a transfer). Any attempt to argue otherwise requires him to actively claim that he was violating the GPL, which means he loses rights to the project entirely and his modified work is legally void.
(I'm not a lawyer, so I'm not sure if the GPL's protections are sufficient to protect a project from a litigant that doesn't care about any amount of legal damage to himself, but it's certainly enough to deter most sane people from pressing legal action.)