Before using a tool that will clean up to remove duplicates, I would perform a backup of your data, just in case you have files named the same in different folders and same file size which are different photos. Its rare that a file will be different and be such a close match, but its safest to back up the data prior to putting the decision making into an automated program that does the cleanup.
I just run a batch script to run across my computer and grab all JPG images and store them to an external device such as USB stick at the E: drive. I run the following instructions which targets the C: drive and grabs a copy of only JPG files, and retains their directory structure so that if there are images of same file name, but images are different, images are then not lost to which file is newest or written last of the same file name.
c:
cd\.
xcopy *.jpg E:\*.* /s/d/y/h
@echo.
@echo. JPG Image Grab from C to E drive Complete
@echo.
@echo.
pause
Here is a list of what each switch does:
/S Copies directories and subdirectories except empty ones.
/D:m-d-y Copies files changed on or after the specified date.
If no date is given, copies only those files whose
source time is newer than the destination time.
/Y Suppresses prompting to confirm you want to overwrite an
existing destination file.
/H Copies hidden and system files also.
My problem with my photos is that my camera takes pictures such as Photo001, Photo002, Photo003 and so on. And each time the camera is erased of images and new pictures are taken, it starts back at Photo001 and names the pictures the same as others even though the pictures are completely different. So I went with this method of getting all pictures to a USB stick, I can then go through and collapse the folders to get all images into one folder, but I have to manually confirm that I wont be stomping a Photo001 that is in say E:\Data\Photo001.jpg with E:\Documents and Settings\Dave\Pictures\Photo001.jpg
I havent used any of the tools at that link yet.