timer1 pic
About 4 years back, while building one of my digital alarm clock using microcontroller, even I use to think that using RTC chip is a waste when it can be done using precised timer interrupts . But when I actually did it using only uC, I found the reason why we should use "Real" time clocks. My only-uC based clock used to loose 3 seconds daily. It means 90 seconds per month! Thats very bad in terms of accuracy. The interrupt overhead was causing this error because uC cannot jump to ISR as soon as interrupt occurs. It has to first finish its current instructon, then jump to ISR, update the timings and return back. This is where micro-second errors come up and they add up to 3 seconds per day!
So using external RTCs is must because it has only one job to do and that is time keeping. Whereas your uC has to do a lot of other jobs which makes it forget that it has to keep the time too.