I actually have several Garmin GPS units, but the one I use most for photography is the GPS 76CSx.
It is waterproof and has a deliberately bloated case over other units, so that it floats. As a kayaker, anything that can fall out of my boat should (within reason) float, waterproof is useless to me if it sinks
OK for photos, the GPS has options for saving track points to the SD card, in terms of time increments or "auto" which only stores track points if you deviate from a straight line. the auto setting is good if you are concerned about space on the memory card, but as I have an 8G card, i prefer to sample in time frequently usually 2-5 seconds.
when I get home, i simply pull the chip from the GPS and select the track files I want (it stores one file per calendar day) and save them to my computer. Saving all the files is possible but it slows things down so if you are only shooting one day or two days, it is simpler to just use those files and leave the remainder.
I put all my photos in a single directory, and using a program called GeoSetter, I select one image, make any time adjustments (Daylight Saving Time vs Standard Time , time zones and for any minor error in camera internal clock.) geo setter then displays the photo location on a map using mapquest. check if the photo is correct (for location) and if so, then select all the photos and have geosetter identify the location of each shot based on time. once this is done, and it can take several hours for 1500 photos, (as I did this summer) you then have the option of saving the data permenantly
works pretty well. i tag all my vacations this way to identify where I was and logically group shots by location.
With my other GPS units, (mainly a forerunner for work outs etc) i have to download the track to garmin's mapsource and then export the GPX file to disk separately just an extra step, but the forerunner wrist watch is much more compact, and I take it with me on business trips because I also monitor my workouts.