Remember that spaces require an identifier (or quotes) to work. If you try something such as:
/write $mircdir\script\script.txt hello
And $mircdir == c:\Program Files\mIRC, then you will have problems.
However, if you use it in an identifier, such as:
//echo -a $read($mircdir\script\script.txt,1)
And $mircdir is still == c:\Program Files\mIRC, then it will work properly. For the first example, you'd need $qt() or similar methods of adding quotes. As long as you follow that rule, it will never give you problems with spaces.
I have always used $scriptdir and my scripts can be moved anywhere on anyone's computer and it has never been unstable. Remember that the rule for spaces is the same as with $mircdir.
If you still have issues with it not working properly, I'd suggest posting example code here and see if someone finds something that was done incorrectly, because it should work all of the time if you're following the rules mentioned above.