This sounds like the bug in the 8U2 firmware that some boards have.
You get this kind of problems in Debian if your sketch is sending too much serial data, for example within a tight loop.
You can try uploading another sketch from Debian if you press and hold the reset button on your board while connecting the USB cable and keep it pressed(the IDE should be fast and responsive as long as you keep the reset button pressed).
With the reset button still pressed, upload another sketch and release the reset button just when the compiler reports the size of the sketch.
Since you have it working in Win 7 you could also try uploading a sketch without any Serial.print() from Windows, and see if the problem goes away when you connect the board in Linux.
For a permanent fix, see this thread about upgrading the 8U2 firmware http://arduino.cc/forum/index.php/topic,53290.0.html
A working firmware is included in the Arduino 0022 installation (hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-uno.hex) so you don't need to download anything if you're already running 0022.