I've just put together a library for accessing the PCF8583 RTC chip. The chip itself is available in an 8 pin DIP package, will work at both 5V and 3.3V, interfaces via 2 Wire, and does not require a backup power supply like the ds1307 does. I got mine from Mouser.
The library supports setting and reading the time. The chip also has an alarm function, but the library does not support that.
You most certainly need to add a backup battery (or supercap) if you want to retain correct time across power cycles, and that's why we add a real-time-clock to our designs in the first place, isn't it?
It does not mention it, but the reality is that this chip resets if the power to is is cut off. And the lack of backup power support means that you have to build one with diodes and resistors (e.g. external, discrete components) to prevent the chip from losing power when the main power is down, and to prevent the battery from draining or overcharging, when power is available.
To the author - thanks for a meaningful effort to help the arduino community with yet another hardware driver!
Not every application actually needs the level of robustness you get with a backup battery. Sometimes it's OK to lose track of time when the power goes out - generally when it's easy to automatically reset the time and the loss of data is acceptable.
I think the lack of backup power is actually OK for my intended application. I'm going to be logging the begin and end time of my morning commute, then uploading the data automatically via XBee when I get home. I just need something to keep time while my arduino is sleeping to conserve the battery. The very small current that this chip draws won't hurt my battery life too much. The time can be reset automatically via XBee if I'm at home, so if the battery does go completely flat recovery won't be arduous. The primary danger there is dirty data caused by getting completely random date information - but I can clean that up when I'm going to do my analysis of what influences my commute time. Later, I can add a charging circuit to charge the battery via USB while the car is running.
So... stage 1 of my plan is just to change batteries every week or so, possibly with a button to tell it to upload data from EEPROM and reset the time. Stage 2 is to automatically detect when I get into range of my home computer and do the upload/reset then (or maybe do the time reset when I start the engine in the morning). Stage 3 is to automatically charge the batteries while the engine is running, so the whole thing can go on indefinitely without any manual intervention on my part.