My Nexus S GPS unit seems to function more poorly every week. Sometimes I can't get a lock at all: using a GPS monitor shows it perpetually stuck at three satellites. I frequently loose GPS coverage when moving on my bicycle, a car, or even walking with the phone held above my head. Is there a fix beyond replacing the entire phone?
After reading and trying a number of Internet tutorials on the subject, I found a simpler answer. The screws were loose.
Turns out the Nexus S GPS antenna is dependent on getting a good connection between the two halves of the case. Tightening up the screws in the image did the trick. These screws control the pressure on the antenna contact and provide a ground connection between the two case halves:
Loosening the screws resulted in poor GPS performance again.
Other tutorials have you bending contacts, soldering and/or adding a second internal antenna. It's possible the writers simply screwed the case on tight after making otherwise ineffective changes.
Opening the case to clean the contacts may also help.