I was needing a similar thing recently, but an expensive FTDI usb to serial cable seemed, well, expensive.
So, to upload to my self-made arduino strip board I just used my existing duemilanove. If the external chip you want to program is powered you just need to connect the reset, tx and rx from the duemilanove to the right pins on your target, and use the IDE to upload.
Obviously you need to remove the chip from your duemilanove to do this, but looking online I find duemilanove clones for cheaper than an FTDI cable! So I'm going to buy a clone, remove the chip and use it as a permanent programmer for my projects, but it's available as a full arduino backup should I want or need one. All for cheaper than a usb to serial cable!
I'm also looking to modify a dil socket with a switch for the TX pin. I think I can rig it so that I could keep the existing 328 in my duemilanove on the board, just disconnect the tx line to the main chip while programming externally. Shouldn't be too hard, just small work.
In fact, I whipped it up and it works: