Here is a vary simple example of why vars in strings should be avoided:
Code:
"VAR is now '$VAR'"+@CRLF
$VAR=""
"VAR is now '$VAR'"+@CRLF



Results are:
Code:
VAR is now '$VAR'
VAR is now ''



Pretty nasty, I'm sure you'll agree.

If you use variables in strings you cannot be sure of the action - it is dependant on the context of the string, and no-one is a fan of ambiguous process when you are trying to write a program.

If a variable is in a string any typo in the variable name cannot be caught as an undeclared variable. You are using SetOption("Explicit","ON"), aren't you?