My understanding is that a GPS device needs to be able to see a certain number of satellites to get an unambiguous absolute position. When the number is below the threshold the device starts to guess based on the satellites it can see, since these can still give it a good idea of *relative* changes in position. If the position was already slightly out then the same error will be repeated as it plots relative position.
I think it’s you doing the guessing here, grahamparks! Explain how a precise relative but not absolute position can be calculated without simultaneous signals from four satellites.
GPS works on trilateration (similar to triangulation but with distances rather than angles) with three satellites giving you a location, assuming all clocks involved are accurate and that you’re close to the surface of the earth and/or doing a plausible speed; otherwise you need a minimum of four satellites.
However, since the receiver calculates satellite distances by measuring the travel times of signals at the speed of light, even a tiny error in the clocks causes a large discrepancy of position.
The atomic clocks in the GPS satellites are only accurate to about a millisecond if I recall correctly, but their clock offsets are precisely monitored and new correction data is frequently uploaded to the satellites and thence to your receiver. So the GPS clocks are sufficiently accurate after correction.
The receiver clock offset is another matter. It’s unknown at startup and thereafter subject to the large rate variation of quartz clocks. This is why a fourth satellite is needed: for timing corrections. The mathematics of this correction process is vague to me but involves solving simultaneously four nonlinear equations. This is done in the receiver using Newton–Raphson iteration.
This method cannot be extrapolated to signals from more than four satellites, so all sorts of cleverness is used in those (now typical) cases.
Since we’re guessing, I’d guess the drift described in this thread is a failure of the receiver to keep its clock accurate or to use the latest ephemeris and almanac data from the satellites. Some engineer took the lazy way out, as can trivially be proved by restarting the device and observing that it immediately corrects its fix (but with Garmins, at least, you’ll probably lose your recorded track, cause it to start recording another track, and/or be unable to restart navigation mid-course!).
I've noticed phones are much less susceptible to this kind of error than pure GPS devices - possibly they have more sophisticated algorithms, possibly they're better at combining other data sources (phone masts, wi-fi, GLONASS etc).
Phones are also faster at getting a fix, even when they have cellular data and Wi-Fi switched off so cannot use Assisted GPS to get faster access to the ephemeris and almanac. And my iPhone’s GPS receiver also uses a small fraction of the power of any Garmin I’ve had, although it’s hard to know which subsystem is using the power in a Garmin. Not to mention it locks onto signals in nearly impossible places, like inside a room on the first floor of a five-story building. Garmins don’t do that although my Edge 520 is better than my eTrex 20 with weak signals (on the other hand, it seems to take even longer to get an initial fix, the bigger problem in my use).
I put all of this down to newer, better GPS receivers in most phones and more competent firmware and software.