Some questions re Arduino 009 and run.bat

I recently rebuilt my laptop, and am having some problems with the Arduino environment. I can get around them by using run.bat, but it seems rather odd, and I have some questions.

I am running Windows XP SP2 with an updated JVM. When I unpack the Arduino .zip file to the desktop, I can run Arduino by clicking on the .exe file, with no problems. However, if I move it to the Program Files directory, I get this weird error about how there is "no program file association for this type of file", and then another dialog saying something about a problem with ShellExecute().

I have figured out Arduino will run correctly if it is anywhere in the user documents path, ie in any directory under "c:\documents and settings\Gian Pablo". If it is in any other path eg. c:\ (root) or c:\Program Files, then it will give the error.

As I mentioned before, it runs fine using run.bat, though then I get an ugly extra window floating around.

What is going on? Is there anyway to fix this? Arduino used to run correctly on this same laptop before. What does run.bat do, anyway?