pictiPig wrote:Could it be that the signal is too high (voltage wise) for the mega168, causing it to misinterpret the values? They are consistent over different hardware setups - which is what I find most bizarre.
Misinterpret? No. However, the levels, besides having different voltages, are also inverted.
If you lucked out and didn't burn out your RxD pin (and, since you tried a null modem cable, your TxD pin, as well), the chip would still have been reading ones as zeroes and zeroes as ones, and that includes things like start/stop bits.
One of the things that RS-232 level shifter circuits do is to deal with that inversion.