+1
The best feature of the immediate window was rapid debugging of simple functions. For example, if you made a sub that returns the extension of a file, you could easily test it by typing in the immediate window:
<code>
?GetExt("c:\dir\dir\file.ext")
.ext
?GetExt("c:\dir\dir\file")
?GetExt("c:\dir\dir\file.ext.ext2")
.ext2
?GetExt("file.ext")
.ext
?GetExt("c:\dir\complicated.dir\file")
.dir\file
</code>
Neat, eh? See how easy it was to spot the error in the last test case, something that would probably have been missed if the code was tested during normal program execution.
That way, you could quickly run a few test cases, without starting the entire program and writing code to test them.