windows to windows: briefcase
linux to linux: rsync or unison + ssh
windows to linux or vice verse:
1. do it in windows: samba + briefcase or pathsync
2. do it in linux: samba + conduit
if you have openssh serving on windows box, you can also go with unison+ssh