コマンドプロンプト上で、grunt.jsがあるフォルダでgruntと入力しても実行されません。
C:\path\to\project>dir
...
-a--- 2012/10/05 0:18 3004 grunt.js
...
C:\path\to\project>grunt
C:\path\to\project>
環境変数PATHEXTに、拡張子を省略したコマンドが入力された場合に補完(探索)する拡張子が指定されています。
>set PATHEXT
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.RB;.RBW
コマンドプロンプトはbashと違い、頭に./を付けなくてもカレントフォルダのファイル・フォルダを叩きに行けるので
PATH(→npm)内のgrunt実行ファイルを見に行く前にカレントフォルダのgrunt.jsを見つけてしまいます。
対処法は拡張子を省略せずに打ち込む
>grunt.cmd
か、またはPATHEXTから.JS;を取り除きます。
grunt 0.4.0からはgrunt.jsがGruntfile.jsに変わるようなので心配なくなるのですが。