Maybe you didn't do enough driving before the test to set the converter readiness? Or a bad pre- or post- O2 sensor?
Some good info here:
OBD2 Diagnostic Tips
One of the EPA's requirements for using a plug-in OBD II check in lieu of a tailpipe test is to make sure the OBD II system has run all of its monitors and that the monitors have all passed. But there's a catch. Some import vehicles have readiness issues when it comes to setting all the OBD II monitors. Consequently, the EPA currently allows up to two readiness monitors not to be set prior to testing 1996 to 2000 model-year vehicles, and one readiness monitor for 2001 to 2003 vehicles.
When OBD II runs a self-check on a particular component or system, it lets you know by setting a readiness "flag" or indicator, which can be displayed on your code reader or scan tool. If OBD II has run all the available monitors and all the monitors have passed (and no faults have been found) the vehicle should pass the OBD II plug-in test. But if all the required monitors have not run, the vehicle canno be given an OBD II test. The motorist must drive the vehicle and come back again, or take a tailpipe test if that is an option.
If OBD II detects a fault when running a monitor, the setting of a code may prevent the remaining monitors from running. A bad oxygen sensor, for example, will prevent the catalyst monitor from running. Getting all the monitors to run can be tricky on some vehicles. Each monitor has certain operating requirements that must take place before the self-check will run.
To set the converter monitor, for example, the vehicle may have to be driven a certain distance at a variety of different speeds. The requirements for the various monitors can vary considerably from one vehicle manufacturer to another, so there is no "universal" drive cycle that will guarantee all the monitors will be set and ready.
Mike Cole of the National Center for Vehicle Emissions Control and Safety (NCVECS) at Colorado State University says some vehicles require very specific drive cycles (called "drive traces" if you perform them on a road simulator or dyno) to activate certain self-checks like the catalyst and EVAP monitors. NCVECS has compiled all the known drive traces for various vehicles on a CD and offers the package to technicians for about $40. For more information, you can visit www.ncvecs.colostate.edu
As a general rule, doing some stop-and-go driving around town at speeds up to about 30 mph, followed by five to seven minutes of steady 55 mph highway speed driving, will usually set most or all of the monitors. Consequently, if you are checking an OBD II system and discover that one or more of the monitors have not run, it may be necessary to drive the vehicle more to set the remaining monitors."
I agree that the flat battery is not a factor. Readiness is established by the DME EVERY drive cycle or every few drive cycles, not just once and then locked in until power is lost.
Sailor, enlighten me - can a system be "ready" and have a trouble code? Or does an active trouble code automatically make the system "unready"?