Hacking a mouse with an Arduino
Made this an answer rather than long comment:

Running with Wouter's suggestion that a PS/2 (serial) mouse would be much easier than USB: You read the serial data coming in from the mouse, examine it, and either pass it straight along to the PC or modify it for your own eviiiil ends. As long as the data is valid, the PC has no way of knowing it's not what the mouse is really doing.

This is a classic man-in-the-middle attack: http://en.wikipedia.org/wiki/Man-in-the-middle_attack

Point of interest: I regularly see issues where a serial GPS or USB-to-serial adapter is plugged into a Windows PC at boot, some data (be it GPS NMEA data, serial console output from a development board, etc.) received on a serial port by Windows at boot-time can be mistaken for a PS/2 mouse by the Windows driver and result in a minute of madness with pointers shooting around, things randomly being clicked on, menus appearing, etc. until either cables are yanked out or the machine is rebooted.