Although probably known in most circles it is worth repeating that
scp by itself does not honor symbolic links. To overcome this limitation just combine
tar on sending side, untar on receiving side:
tar cf - /src/dir | ssh remotehost "cd /dst/dir ; tar xf -"
Usually this is even faster than using
scp, as now only big chunks of data are transfered via TCP. Expect an almost twofold performance increase for larger directories which contain a couple of small files.
See also commandlinefu.