I have had several Err99 lockups on my 20D over a few years of ownership. It seems to go with the territory. Err99 is a general fault status code. I clear mine by switching the camera Off, removing the battery, the re-installing the battery, and turning the camera back on. Searches of web forums will reveal that Err99 and other lockups are pretty common across many models of Canon d-slrs. I attribute it to the all-electronic interface between Canon lenses and bodies; I have not had a Nikon camera/lens combo lock up with an error code like an Err99, and I think that's because Nikon's lens/body diaphragm interface is a mechanical connection--a simple, mechanical actuator in the body, and a small lever on each lens, and it has been that way since 1959. In a Canon system, the lens-to-body connection is entirely electronic, with absolutely no mechanical components, so if a contact gets greasy, or damaged, the body and the lens will not communicate properly,and the camera locks up.
Secondarily, I think Canon consumer bodies suffer from the Err99 problem more often than Nikon pro bodies because the Canon consumer bodies have batteries that go in in a vertical orientation, so gravity is working against the contacts, which are at the top.
In a camera with a side-loading battery that has a screw-key door that kind of "pushes in" the battery, gravity is not working against a solid contact. Overall, I think the issue stems from how very little actual "area" is in contact in modern Canon cameras,and as popular as Canon cameras are, there are a lot of people using them in situations where the Err99 occurs--due to dirtty contacts, worn contacts, and the need for perfect electronic interface between each and every lens and the body. In bodies like the 20-30-40-50D, where the battery goes in vertically, I sometimes think some people are having problems with cheaper, generic batteries that do not fit properly; in the past,there have been some really cheap, Chinese-made generic Canon-fit batteries that do not make good contact. The problems with cheap, and I mean the el-cheap-o
eBay kind of generic batteries, are pretty well-known and discussed on Sportsshooter.com,with many people having the cheap-o batteries fail to make good,solid contact.
A Google search on the string Canon camera + Err 99 will turn up days' worth of posts to read. But many people seem to experience the Err99 right after a lens change, which is what makes me think the problem lies in the all-electronic body/lens interface connection.