Note: I have written a page at http://www.levinecentral.com/ham/grid_square.php
When I log a contact (I use HRD) I like to populate the grid square locator so that it shows the approximate distance between me and the contact. There’s a bunch of ways it can get populated and here’s what I use.
1) QRZ.com individual callsign contact data often has the grid square for a contact. If it does, HRD pulls it in. It only needs to be adjusted if the operator isn’t at his home station, such as when I operated from North Carolina.
2) In digital modes like RTTY or PSK, the contact often provides his grid square as part of the contact.
3) I use the QRZ.com GridFinder page at http://www.qrz.com/gridfinder where I have the most luck as long as I have a portion of the address. Most of the time this one site provides what is needed.
4) Next is site which is map based. http://f6fvy.free.fr/qthLocator/fullScreen.php where I can often locate, within reason, the approximate location of the contact. Also good if a contact is mobile and provides you an approximate location. You can then obtain the grid square. An example was a marine mobile station that provided his approx coords and distance off shore. I just wish this site had a way to enter in a location like Google maps to get you close to a spot quickly.
5) A final shot is at http://www.vhfdx.net/callbook/
With the combination of the above, except in maybe 2 cases so far, I’ve been able to come up with a gris square value for the contact.
Some other references:
http://www.arrl.org/locate/gridinfo.html is ARRL’s reference with some maps.
http://no.nonsense.ee/qthmap/ another Google map locator.
If you are aware of others, post them as a comment.