arduino burning bootloader. avrdude issues
When I burn a program to my [AVR] chip [I] change the port to [COM3] and it works just fine


This implies you are using the usual USB cable to load software onto an Arduino board from the Arduino IDE.


  When I try to burn a bootloader to my [ATmega328,] the [Arduino] IDE gives me an error


http://arduino.cc/en/Hacking/Bootloader says


  To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer), USBtinyISP or build a ParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header) 


Sparkfun have an excellent tutorial - it is well worth reading carefully all the way through.



Some comments on configuring the Arduino IDE

The Arduino IDE is heavily criticised by professional engineers and developers because it is very simplified and lacks a great many features that those people expect to find in their tools. It is also criticized for encouraging bad programming habits. However it is aimed at beginners and many people think it does a good job of making it easy to get started.

In the "Tools" menu of the IDE you find "Board" and "Programmer". Typically the definition of the board contains a definition of what programmer is to be used. For example in my IDE I have an entry something like "ATtiny85 (with Arduino as ISP)" which means the IDE expects you to be using a separate Arduino board as a programmer. 


 From http://www.hobbytronics.co.uk/arduino-attiny 

However, even after selecting this, you can go to the "Programmer" submenu and select a different programmer to be used to program the target "board". This works well for loading programs (sketches) onto any AVR.

I haven't burned a bootloader but I imagine this is how you select a programmer for boards that are normally programmed via the USB/serial connection.