I think the difference is likely due to the way that the Android phone with a GPS, and the iPhone using 3GS, are determining their location.
I am not sure about all Android phones, but it is likely that they are all using similar GPS for location purposes. This could be verified if you provided the similar models that you tested with. Anyway, the point is that phones that use true GPS are determining their location by decoding and triangulating based on radio signals Global Positioning Satellites. This is accomplished with a chip located on the phone itself, and using a minimum of 4 satellites.
The iPhone, on the other hand, uses a combination of Assisted GPS, and GLONASS, which is the Russian Global Navigation Satellite System. Assisted, or A-GPS uses network resources to augment the signal location information received from the GPS.
This augmentation takes two major forms, which may significantly affect the derived location (from the Wikipedia article referenced above):
- Information used to acquire satellites more quickly
- It can supply orbital data or almanac for the GPS satellites to the GPS receiver, enabling the GPS receiver to lock to the satellites more rapidly in some cases.
- The network can provide precise time.
- Calculation of position by the server using information from the GPS receiver
- The device captures a snapshot of the GPS signal, with approximate time, for the server to later process into a position.
- The assistance server has a good satellite signal, and plentiful computation power, so it can compare fragmentary signals relayed to it
- Accurate, surveyed coordinates for the cell site towers allow better knowledge of local ionospheric conditions and other conditions affecting the GPS signal than the GPS receiver alone, enabling more precise calculation of position. (See also Wide Area Augmentation System)
The differences are not likely a factor of the two satellite systems. The more likely reason has to do with the Android phone directly deriving the location from the satellite signals, , where the iPhone is using the satellite signals as a basis, but uses additional information to influence the processing of the signal and deriving the location. The accuracy of the additional information thus influences the derived position.
If the iPhone had a full GPS chip on board that was performing the GPS signal processing, the locations would likely be much closer, assuming, as @U2ros mentioned, that the phones were held in the same location and the readings were taken at the same time.
The last factor to consider is the Positional Accuracy that the respective phones are capable of determining with their GPS implementation. Assuming that each phone has an accuracy of 10 Meters, meaning that for a given point, the location could be determined to be anywhere in a circle of radius 10 meters around that point. You could thus end up with each phone determining the location to be on opposite sides of that 10 meter circle, thus being 20 meters apart.