So I followed the tutorial on this site regarding setting up everything for the microcontroller, and it works... but only when the programmer is hooked up. So I did some more testing, and only the Ground/Vcc pins are necessary to be plugged in for the UART to talk to hyperterminal. So I brought my oscilloscope out, and noticed that as long as ground from my breadboard is hooked to ground to the oscilloscope, the UART works again -- removing the connection causes it to fail.
I am using the sparkfun rs232 shifter board, atmega168 with an external crystal at 20 MHz. So I have no idea what's going on, any one with some good ideas?