Yeah, I don't think Samsung will ever get it right with GPS. These issues have plagued them since the original line of SGS1. When I had the Epic 4g, it was beyond terrible.
If you're rooted, try this with Root Explorer
Go into /data/gps
long click the config and hit open in text editor
Change the server to "supl.google.com" (NO WWW)
Change port to 7276
It may help if you change from STANDALONE to MSBASED
Save (Dont' worry Root explorer will make a backup for you with .bak at the end)
- Reboot phone, and enjoy