Note: I have written a page at http://www.levinecentral.com/ham/grid_square.php which does exactly what you might need. Check it out.
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
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.geocities.com/vhfdx2/gridqra.html for printable maps.
http://www.arrl.org/locate/gridinfo.html is ARRL’s reference with some maps.
http://www.g4xgt.co.uk/Grid%20locator.html is another quick responding Google map version.
http://no.nonsense.ee/qthmap/ another Google map locator.
http://ric.cqham.ru/ for looking up grid squares for Russian call signs.
If you are aware of others, post them as a comment.