Here's a solution that's worked for me to bring back a half dozen batteries - but all in the same model of laptop - that appeared to be stuck at "0% - plugged in, charging". No doubt there can be more than one cause for this problem, and this method may not work for all.
This describes a solution that's worked for me for laptops running Windows XP. Windows 7 has an additional driver for the battery, and I haven't confirmed that this works for Win7 machines as well.
1- with battery installed and AC adapter plugged in, boot up laptop. Go to the Power Options control panel (may also be accessible by right-cling the battery status icon in the System Tray). Set the System Standby option when plugged in to Never. I also chose the Always On Power Scheme, but I don't know if this aspect is crucial, whereas I'm pretty sure the long or Never sleep/standby option is. It should be OK to let the monitor and HDD have a timer setting for turn-off, but if in doubt, put them to Never as well, esp the HDD. I also had the Running on Batteries System Standby set to Never, but I wouldn't think that applied in this case, as the AC adapter is being used. However, just to be sure, set it to Never!
I suspect that the reason most people think their laptops are stuck at "0%-charging", is because the laptops go to sleep before the battery finally builds up enough initial charge to get going. I don't understand why a 0% battery doesn't charge or show charge improvement immediately, but that seems to be the case, at least for the laptops I've been working with. Frankly, I don't even know for sure that the following driver trick is necessary, but it's often recommended for battery charging issues, so I've been doing that piece as well.
2- go to the Device Manager and find the Batteries>Microsoft ACPI-Compliant Control Method Battery, right click, and uninstall the driver. Go to the Action menu at the top of Device Manager, and Scan for Hardware Changes. This will reinstall the driver (as will logging off and on, or re-booting).
3- wait one to two hours. The battery should start to show increased % charge level. If not, try uninstalling and re-installing the driver again, and waiting another hour or two. If that doesn't work, try the method where you boot w/o the battery, uninstall the driver, shut down, and re-boot with the battery. At the moment I don't think that adds anything to the simpler method, but who knows. This is voodoo after all.
One note of caution. The laptops I've been using this on are sold with 65W AC adapters, and normally idle at 20W with the screen on, but I notice when the battery starts charging, and until it gets to nearly full, it is drawing 90W!! This will likely burn out an adapter of lower rating, so if your laptop has the 65W adapter that's common for recent vintage laptops, find a higher rated one to do this process with. A 90W adapter is not hard to find for most laptops, and up to 120W is usually out there. I use a Kill-A-Watt P3 to monitor wattage, so I just watch the display to see when the battery finally starts charging, instead of constantly checking the System Tray status indicator.
Note for Windows 7 users: Win7 has second battery device listed in Device Manager, and it can't be uninstalled unless you're in Safe Mode. I'm fairly sure that I used Win7 versions of my laptop model to bring back some 0% batteries awhile ago, but I can't recall for sure. If this method above doesn't work for you, you could try it while booted into Safe Mode, so that both battery drivers can be put through the uninstall/install cycle.