I have recently burned a batch of ATMega8's using an Arduino UNO and the optiloader sketch. Optiloader will detect that the target chip is an ATMega 8 and burn it with the correct bootloader.
All mine use a crystal or resonator for an external clock signal, this is the easiest way to start out, if you want to use the internal clock instead of external crystal or resonator you need to change the fuse settings in optiboot and possibly more, I have not yet tried this. Make sure that the clock is connected correctly when you burn your bootloader if you plan to use optiboot.
I also had to add a new board type to the Arduino IDE to be able to program the standalone Atmega 8's here are my settings from boards.txt -
I use a USB to Serial programmer, its so much easier than fiddling about trying to get chips in and out of the UNO without breaking them, it also allows me to leave a six pin programming header on my standalone projects for future updates.
Heres an ATMega 8 bootloaded with opti boot and loaded with Arduino Code using the settings above and the Arduino IDE, the six pin header in the top left is the programming header, the blue blob half way up the chip is a 16Mhz resonator for the clock. The only other components are a 7805 regulator, diode and supporting caps for 5v power (the other bits on the right are a L293 motor driver and supporting components) -
And in action with the motor driver here -