Quote Originally Posted by snood
...can you explain to me what the purpose of a pullup resistor is and why it is needed in this instance.
OK, I'll try it in brief:

A PullUp is required when you have an output pin that is open Drain (or open Collector)
An open collector output is "open" if not set "LOW"
The PullUp pulls this open Pin "HIGH"

The SDA pin on an I2C device is such an open Drain output as it is bi-directional.

Melanie has written an excellent example for the DS1307, see: MN1307.txt

Another thread about RTC's with a lot of useful information can be found here

Take some time to read it from the beginning, you can really learn a lto from it.