I want to program a ATMega328 that has the Optiboot bootloader, but I only have an Arduino Duemilanove. Can I still program it somehow?
Alternatively swap the ATMega328 chips. Once the one with OptiLoader is in your Arduino select "Uno" as the board type in the IDE, and program it like normal.
Good luck!
Or you can try this method which lets you burn bootloaders using just the arduino board itself. No external programmers.
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html