Apparently this error can have a multitude of causes. My impression is that this is a catch all in the Canon firmware. Any unexpected situation goes here and the firmware locks itself up in a tight loop until you cycle power, at which time the firmware may or may not detect the same situation all over again. Pretty much "game over, insert coin".
You can do a lot of searching online and find lots of information, some of it misleading and/or correct only in a specific situation. Note that Canon has not provided any information to clarify the issue since the ancient D60 camera, for which Error 99 was described as follows:
ERR 99: SYSTEM ERROR. There is an internal malfunction detected during the camera's self-checking procedure which is executed before every attempted exposure.Indeed in my case with the 20D, the camera seemed fine until I pressed the shutter button.
One of the best articles I found was this one:
The above article was written by a person who works at a place that rents Canon camera gear, so he had a unique opportunity to investigate the problem with multiple camera bodies and copies of the same lens on hand. Something most photographers are unable to do.Sometimes you can fix an Error 99 problem yourself, and sometimes the camera (or lens) needs to be sent in for repair. Sometimes the problem is intermittent and just goes away on its own (and all too often comes back again).
Tom's Digital Photography Info / [email protected]