Self-ISP on an Uno

The programmer doesn't care about the chip signature, so you can use it to burn a bootloader to the 328(not-P) chip. You might not be able to do it with the IDE GUI, however -- AFAIK all the official Arduino boards use the 328P.

Here's a little script to write the Uno bootloader to a blank chip (change set BINARY= to point to your preferred bootloader). With the -F options it should ignore the chip signature and upload to a 328(not-P), although I don't have one of these chips myself. Paste the code into a .bat file inside the hardware\arduino\firmwares\arduino-usbisp directory. Let us know how you get on.

@echo off
REM 8U2 in ISP mode
REM Burn Optiboot bootloader

set TOOLS=..\..\..\tools
set AVRDUDE="%TOOLS%\avr\bin\avrdude"
set AVRCONF="%TOOLS%\avr\etc\avrdude.conf"
set BINARY=..\..\bootloaders\optiboot\optiboot_atmega328.hex
set BAUD=19200
set /p PORT=Enter port number:

"%AVRDUDE%" -C %AVRCONF% ^
  -p atmega328p -F -P COM%PORT% -b %BAUD% -c stk500v1 -e -u ^
  -U lock:w:0x3f:m ^
  -U efuse:w:0x05:m ^
  -U hfuse:w:0xDE:m ^
  -U lfuse:w:0xFF:m
"%AVRDUDE%" -C %AVRCONF% ^
  -p atmega328p -F -P COM%PORT% -b %BAUD% -c stk500v1 -v ^
  -U flash:w:%BINARY% ^
  -U lock:w:0x2f:m

pause