I am sure that many folks out there do this already, but I thought I would share my revelation. Really this applies to any versioning system I imagine, but I am partial to Subversion.
When I was working on a pc, I used the remote site features of dreamweaver alot. If I had a quick update, I would make the change and push it up. Neat and clean. Now I use my mac, and although at work I have dreamweaver and can still do that, in my personal life I can not afford that luxury. Also my secondary development box is running fedora core and dreamweaver mx 2004 doesnt run under wine well. So even if i could afford it I wouldnt bother. My first work around for this ( i hate ftp) was to use rsync to push the files to the server. However my productions servers are mixed windows and linux, and I couldnt get cygwin (unix tools on windows) working on my dev server, so I wont try it on my production.
“OK, Great story. How does this apply to version control” you ask impatiently?
Well because I use subversion to manage all my development, my repository is always current. I have my repository accessable from my live servers, so to update my servers I can just run an update command. This takes my local copy, compares it to the head (newest) version in the repository, and only pulls out the differences. So updates take very nearly no time.
Added bonus to this, is that if for some reason the new code is not happy on the live server, I can just as easily revert to a previous version of the site.
As I said, many folks may do this already, but for those who dont use versioning, this could be just another push 