I have found 2 possible solutions for this!
1 - the easiest - Roomba told me that it could be related to the sensors on the drive wheels. If you look othe the outside of the wheels, you can just about see 2 wires showing through a rectangular hole. This needs cleaning, by blowing on, or compressed air and a little sensor on each whell too. Also try turning the wheels manually and they should have equal resistence. If not, this explains the "circle dance" as Roomba cutely call it. for more info click this link: http://www.irobot.com/sp.cfm?pageid=48&id=69&productid=32&categoryid=1
2 - If the above doesn't work, then I've been told that the rooba needs an update called an "Osmo updater". This can be bought from the roomba website and will simply plug intto the serial port which is located under a hidden plastic slot above the mains charger socket. However, i could only find a full explanation of this on the Dutch Roomba website, try this link: http://www.irobotstore.nl/index.php?main_page=household_robots_service_and_support_roomba_problems
Hope this helps! I'd love to know if it does!
Cheers
Adam (A happy Roomba Green owner)
Adam, Luxembourg
June 2006