You can play with settings in /system/etc/gps.conf.
Try adding these two lines,
INTERMEDIATE_POS=1
ACCURACY_THRES=5000
and change the accuracy with the setting you think is the best for you. It will lock you faster but not as much accurate until it fixes completely. 5000 is too high number in my opinion.








Sorry to report that in my case, those settings didn't help, I tried changing the vaules for lower ones but not higher.
I left my phone on the window sill (inside) over night (about 7 hours) and still no lock from gps reciever.
I found some information on a different forum with lots of other settings not found in the gps.config, not for legend though, but for samsung that also has GPS issues with cyanogen, the information stated that the other settings are for ALL PHONES.
Below is an example of the other settings I am talking about the link is reference for where the information comes from.
http://android.modaco.com/topic/331446-mod-all-roms-gps-fix/
## GPS FIX - Modified by wbaw - r0.2 ##
## NTP Time server, use a local one ##
NTP_SERVER=0.europe.pool.ntp.org
# NTP_SERVER=0.uk.pool.ntp.org
# NTP_SERVER=0.asia.pool.ntp.org
# NTP_SERVER=0.oceania.pool.ntp.org
# NTP_SERVER=0.north-america.pool.ntp.org
# NTP_SERVER=0.south-america.pool.ntp.org
# NTP_SERVER=0.africa.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
DEBUG_LEVEL = 3
## Intermediate positioning, reduces accuracy, increases speed
INTERMEDIATE_POS=1
## Accuracy threshold for intermediate positioning
## 0 for no threshold causes 'Skipton bug'
ACCURACY_THRES=5000
## Enables network positioning before you get a gps fix
ENABLE_WIPER=1
### AGPS SETTINGS ###
## Use Google AGPS server
SUPL_HOST=supl.google.com
SUPL_PORT=7276
## Comment the above 2 lines & uncomment the lines below
## to use Orange UK AGPS server
#SUPL_HOST=agpss.orange.co.uk
#SUPL_PORT=7275
## More AGPS settings
CURRENT_CARRIER=common
DEFAULT_AGPS_ENABLE=TRUE
DEFAULT_SSL_ENABLE=FALSE
DEFAULT_USER_PLANE=TRUE