I've released an update to Chang Liu's tree-sync.pl script on CPAN (currently tree-sync-2.2.pl).
I had some problems with the original script, so this is a re-write that uses an algorithm based on File::Find module.
I've only been testing on Windows and Linux, but so far so good - it solves my immiedate issue which was to have a way of maintaining a synchronised "backup" copy of various filesystems.
PS: As of Oct-2008, the tree-sync project is now on github. Use this if you want to contribute to development. Of course, releases will still be distributed for use on CPAN.