I have similar experience on the iPhone 3GS right after I start some GPS-using application (like TomTom). It is sometimes really terrible in the first 10-15 minutes. Though after that, it becomes quite accurate. Often also earlier. Also it is often better when I start it already when being outside of the car and not when being in the car.
I guess that it searches each time for new satellite signals if the last usage of GPS was too long ago.
If a GPS receiver has no current satellite orbit data, it'll need to listen for 12.5 minutes to determine the current set of satellite orbit information.
There's a useful explanation of the various possiblilities of GPS startup (specifically talking about Garmin models and terminology, but more broadly applicable too) here:
I guess that it searches each time for new satellite signals if the last usage of GPS was too long ago.