Excellent! and thank you! So my steps will be:
1. Upload the ArduinoISP sketch onto an Arduino Uno following these instructions http://arduino.cc/en/Tutorial/ArduinoISP
2. Connect the Arduino Uno to my new mega328 as shown in the bottom images of the above link
3. In the arduino dev environment go to tools-->programmer and set it to "Arduino as ISP"
4. In the arduino dev environment go to tools-->board and set it to "Arduino Pro or Pro Mini (3.3V, 8 MHZ) w Atmega 328
5. In the arduino dev environment go to tools-->Burn Bootloader
So now I should have a mega 328 that I can run off of 3.3V reliably but that I could still program with 5 volts via the arduino uno with its mega328 removed. Is this correct? Will the Atmega16U2 on the Uno have any problem communicating and uploading sketches to a mega328 running an 8MHZ boot loader?