To redistribute a XNA game, you have to compile a "release" assambly in Visual Studio, and not a "debug" one.
Then, the computer which will execute the assambly must have (at least) the .NET Framework 2 AND the corresponding XNA redist (2.0 in your case). No need at all to have XNA or visual C# installed.
A link that might interest you if you want to create an installer that check for XNA redist:
http://benjaminnitschke.no-ip.info/2008/04...orXNAGames.aspx
I'm a professional programmer and I developped quite a lot on XNA. I'm running a dev blog about it.
Looked a little bit at your code, sounds good for the collision, there's nothing much to do if you'r using the XNA bounding boxes.
There was a bug in your spriteFont, it uses Calisot MT font, not all Windows have it. For any font, you should stick to the .NET supported font (see the Font & FontFamily class reference).
I changed it to "Arial" and there's no problem.