I used to use a convoluted script that ran on the server to pull the backup. That doesn't work well for win32 machines.
Now, I wrap rsync on the server and push the backup.
rsync -za --rsync-path=/usr/local/bin/ssnap.sh . backupserver:backups
That command will copy '.' to backupserver in the directory backups, but instead of using 'rsync -server', it will call 'ssnap.sh -server'. Basically, it maintains 18 copies hardlinked together in ~/backups/$date_stamp} on the backupserver, so files that haven't changed don't take up extra space or network bandwidth. I've found no problem running this to backup my wife's complete XP machine across our asymetric DSL nightly.
Now all I need on a client machine to back it up is working rsync. My Linux server has rsync and ssnap.sh installed.