What is the purpose of having SDA, CLK pins on the chip if we can use any port. Unless I am reading another chip besides the PIC18F6680.
The hardware ports are good for hardware interrupts and maybe a little speed. But I have not noticed much speed wise myself.

I also how do you make the difference between writing to the RTC and writing to the DS1337 then ?
I think you mean writing to the RTC and EEPROM...
It IS in the Control-Address part of the command as you mentioned earlier from the post Mel did.
The EEPROM used $A0 for the Control and a value for the location where the data is stored. In my code it is the VAR ADDR.

The RTC uses %11010000 for the Control and $00 for the Address part. The big thing is the control byte.
I2CWRITE DPIN,CPIN,$A0,ADDR,[DATO] 'EEPROM
I2CREAD DPIN, CPIN, RTC, SecReg, [sec,mins,hr,day,date,mon,yr]