1. make a copy of the original atmega168 chip, and
It is possible to copy the software from the original atmega168 chip. check out avrdude for this. It would hard and time consuming to modify the copied software. I made backups of software that came on the chip using an duemilanove.
2. program the new software to another atmega168 chip[/quote
You would have to compile the new software first. Did you get the header files and any libraries with the cpp file. A duemilanove could do this also.
bootloader: the atmega168 chip does not require a bootloader. A bootloader make it programmable without using external hardware. The bootloader uses about 2k of flash memory. If you don't use a bootloader you can use this flash memory for something else.
willem programmer: never used one.