The simple question is how do you sync a Windows file system to an FTP destination periodically while never checking the destination for change unless something bad happens and not relying on file size or date/time changes. Too many other differences exist when using date/time to determine change (NTS alters seconds, daylight savings time, etc.) and file size is not as reliable because of blocking factors, etc.
The first issue is which FTP server software out there supports checksums or hashes using MD5 (MD5 is pretty quick compared to SHA-1, but whatever works).
Second issue is which copy program can generate hashes from a directory listing, store them in a database, send over anything that changes or is new, and never check the destination FTP server unless oddities happen, possibly having a server side utility to generate the database if files already exist.
Use rsync server and client additionally to (or instead of) the original FTP service. rsync is designed to perform exactly the operation that you describe. FTP is designed just for copying files. Yes, you can calculate checksums via FTP's SITE command, but this is merely a hack.
So far I have never seen an FTP server which offers a checksum command (it'd be custom, AFAIK it's not part of the FTP rfc), so I think this whole approach will not work.
You can use this simple windows FTP tool, in command line; Check wiki page for manual.
http://sourceforge.net/projects/ftpandfilesystemsynchronizer/
A quote from a different website:
Serv-U and RaidenFTPd both have working implementations of XCRC. Of the two I would recommend Serv-U.