I use emacs23.4 on window xp. So the shell-mode use windows cmd.exe.
I encountered such a problem that If I use the commands which ask for user input(.e.g email, password), my emacs does not display the request.
I have commented out all configuration in .emacs.
The picture shows the result that I input "heroku login" in emacs and cmd.

ansi-term instead of shell. (press C-m for RET in ansi-term - kindahero 2012-04-04 09:26
This is a known issue with emacs on Windows: https://www.gnu.org/software/emacs/windows/Sub_002dprocesses.html#index-subprocesses_002c-hanging-when-reading-input-213
Unfortunately, there's no easy work around. You're best alternative is probably to provide your heroku credentials in a .netrc file to avoid being prompted.
-qoption to load neither ~/.emacs nor default.el. This might be easier than commenting out your configuration - N.N. 2012-04-04 09:03