A simple program could be made actually (in C or Python or whatever you find more confortable). You set up server credentials, you save a files.txt and/or settings.txt in it with a white/blacklist of files and folders and a list of the files on the server and their last modified date.
Then you make a program that connects to the given server, checks the files.txt and settings.txt for what it should do and starts recursivelly comparing the given list to the files on the folder it is supposed to save. If the modified date is more recent than the one on the server (and any other conditions you want to add here), it uploads the file.
Another way could be to make your whole set of folders to backup a giant cvs/svn/git mirror, with white and blacklisted files. Some even more basic automated scripts then could be used to make cvs commit, or whatever system you use. As cvs/svn/git make sure themselves to keep track of changes, you'll be sure that any modified file will surelly be uploaded, but not modified ones wont.