No there's a third remedy. Negotiate with the copyright holder for more suitable terms of license. So to summarize, there are three remedies available:
1. Cease distributing the offending code (replace it, or withdraw the software from distribution entirely)
2. Re-license the derivative work under compatible terms (essentially release the entire work as GPLv2)
3. Buy a suitable license for the copyrighted code under terms compatible with the needs of the derivative work.
Note that #3 is impossible for some projects, as all copyright holders must agree. For some large projects this is very difficult, especially when some contributors can no longer be found. The Linux Kernel is one example.
For one-man shows, this is why I always recommend the GPL for released code. This allows you the option to sell commercial licenses should your code prove popular. And you still have the option to add additional open source licenses as others request. Releasing code under a permissive license, such as the BSD or even MIT, shuts the door on some of these options. You can always relicense your own code, but you can't recall code you've previously released under another license.