I will post verbose output tonight when I get home.
These are the steps I took to upload a hex file to my atmega328 using my Arduino UNO as an ISP:
1. Installed the latest WinAVR which comes with avrdude.
2. Connected Arduino to PC, uploaded ArduinoISP using Arduino IDE 1.01 [board selected is the UNO].
3. Wired up my atmega exactly like this:
4. Downloaded "main.hex" from this page http://hackaday.com/2010/10/25/avr-programming-02-the-hardware/
under heading "Flashing firmware with AVRdude
" - this is supposed to be a program that blinks an LED. This is what it looked like except I had 5V running from the Arduino to the 5V rail like in the picture above and GND from the Arduino to the GND rail (and no other power source).
[This is a picture from the hackaday website, not one that I took]
5. Opened up command prompt, navigated to the directory with the .hex file, and used:avrdude -P COM7 -b 19200 -c avrisp -p m328p -U flash:w:main.hex
where COM7 is the port my Arduino was connected to [I got this line from the hackaday tutorial].
Then when I found out I needed a 10uF capacitor between GND and RESET on the Arduino, I repeated all the steps from step 3 onwards with the capacitor in. Note that I had no other capacitors or a crystal. This is a fresh ATMega328P-PU that I got from here: http://www.ebay.com.au/itm/160768276199?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_2823wt_1139
Both ways yielded an invalid device signature (I think it was 0x000000) error immediately. Forcing it with -F took about a minute to complete with a few different steps going from 0-100%, but verification at the end failed [I suspect it didn't connect/upload at all].