I might be wrong, but I don't think this involves a sketch
Giving the fact that there are literally hundreds (or even thousands) of people using the Uno who do not have this problem there is a very good chance that you are wrong. The most logical and time efficient place to start troubleshooting is with your Sketch. Post your Sketch if you'd like help.
A few other things that would be helpful to post...
Operating system?
Terminal application?
I also doubt that many of those individuals using the Uno are writing serial write/read programs, and then testing the same program on a Duemilanove. We were given predetermined registers to use, and we determined their values via the data sheet. The assignment was written before the Uno was even released.
The program that was tested was not mine; it was my instructors. I'm asking for the differences in HARDWARE, not software. If I thought it was a software problem, I would have said so. If I ever obtain the application that he has, I will post it.
Operating system was OSX (10.6.7), Windows 7, and Windows Vista.
All individuals were using the Arduino compiler.
Because both boards use the ATMega328 chipset, my instructor seems to think the Uno's USB-to-RS-232 converter chip is setting that bit high, but no one knows.
You ran the absolutely identical sketch? May we see it?
In any case the high-order bit being high sounds to me like the wrong number of bits. Serial has LSB first and MSB last, and the MSB is followed by the stop bit which is a 1. So if you configured the port to use 7 data bits you would get those symptoms.
Does the class run to a logic analyzer? You might be able to see what is actually arriving.
There was no logic analyzer, that's something I didn't think of. I'll have to check on that.
I understand the idea of having the wrong number of bits, but why would that make a difference between the Duemilanove and the Uno? Would that be what's causing the problem? I appreciate the insight, I'm going to look into this.