The explanation I found online at the time was that a GPS receiver needs to download data about the exact orbits of all GPS satellites from time to time. Satellites slowly lose altitude and change their orbits. Up-to-date information is constantly broadcasted by every satellite, but it takes about 15 minutes for a device on the ground to download this dataset.
Most GPS devices do this automatically whenever they get the chance. But if your GPS is somehow unable to stay online for 15 consecutive minutes (bad firmware, faulty memory, tunnels, underground parking lots, etc), it will be relying on increasingly outdated info and drift far off its actual location.