Even rsync might not be atomic enough for some situations[1] since it'll update files as it goes rather than in one huge transaction at the end.
[1] I worked on the World Cup 2006 site for Yahoo! and we had this issue - solved with 'rsync --link-dest' and swapping symlinks.