For my current GPRS projects I use a PHP script on my webserver to provide the time - I do it this way because the same request also provides a flag to let the project know if it's settings have been altered (which are stored in a MYSQL database on the same server), so it can download the updated settings.
Essentially it's a logger that uploads readings at specific intervals, and every time it does so it first reads the time, resets it's own clock, checks if it's settings have been altered, updates them as required, and then uploads the readings. The clock runs on the usual 32KHz crystal, so is fairly stable anyway, but setting the clock every time means it's always pretty accurate.