A bit more of GPS accuracy. GPS calculates your position by solving a simultaneous equation of 4 variables: X, Y, Z, and Time. It thus needs at least 4 satellites for a fix. The geometry of the positions of the satellites at that time is critical. If they are well spread out across the sky they define a position well, but if they are bunched up or in a line, they don’t pinpoint your position well. This is known in the GPS world as PDOP (Positional dilution of precision). The satellites are continually moving, and are in approximately the same position only once every 23 hours or so. Add into that the above mentioned aspects (reflections off buildings, obscuring of signals by trees and buildings), and you will see that two measurements of the same point on different occasions will most likely have a different set of satellites, and different geometry, in the solution delivered.
Given that the geometry and situation are identical (e.g. put 2 receivers side-by-side at the same time. In my work we even share antennae between multiple receivers) you can still occasionally get different results. This can be due to one receiver not having the most up-to-date satellite orbit information (Ephemeris), or perhaps one not tracking a WAAS/EGNOS satellite, or a different one, resulting in a different number of satellites having ‘corrections’ for their signals. If the receivers are the same model and have the same settings these differences usually cancel out after a few minutes however.
GPS accuracy is also affected by the layers of the atmosphere that they go through, which are affected by solar radiation (as Lambertus points out). In particular the Ionosphere introduces delay in the signals, and this affect varies with solar activity. Because GPS works by measuring the distance from the satellites to you, by calculating the time delay from when the signals are sent to when you receive them, delays in the signals will affect the resultant position.
If you want better accuracy, you can ‘correct’ the signals. A GPS working by itself gives a position accuracy of about +/-10m (it used to be +/- 100m until about 2002). If the receiver can track WAAS/EGNOS ‘helper’ satellite signals, which contain correction information, the accuracy can come down to 2-3m. If you can receive an ‘RTCM differential’ data source, you can get better than 1m accuracy, and if you spend thousands of dollars, pounds and euros, you can get down to 1cm accuracy (called RTK) - this is what surveyors and construction engineers use.
I’ve been collecting mapping data with a Garmin Geko and have seen track logs from different days along the same path varying by 10m or more. My conclusion: use the track logs and waypoints along with a healthy dose of local knowledge and intelligence. If you ‘make up’ fine details such as intersection flare-outs, rather than try to patch them together from GPS tracks, you will probably end up with a more accurate result! Also check that your results look right after entering them, and tweak (adjust) them manually if not.