The best way is to use scp, rsync, or wget depending on the situation .. scp/rsync if you have to loginto a server, wget if itt's just available via fto or
www.
In general, get into the habit of using rsync. Rsync is very useful, ESPECIALLY for moving around large directory structures or doing backups. Rsync has a great algorithm for detecting changes in files, and changes files in directory structures.. It uses this to do great differential copies..
If you're mirroring a tree with thousands of files, rsync is definately the way to go.. it can give 200-300% speedups on large trees.. a common command line would be :
rsync -e ssh -avcz server1:/path/to/files server2:/path/to/files
I use this for syncing up 8 geographically distributed webservers from one central "gold" server.