VBSCRIPT can be imbedded virtually anywhere and in fact this is basically what a lot of the MAKEMSI commands do. Note that all variables used must be defined.
I only support imbedded VBSCRIPT which is between the VBS and /VBS commands (please use them).
Inline VBSCRIPT can be used anywhere between the "Msi" and "/Msi" commands.
VBSCRIPT functions and subroutines can be defined anywhere after the "/Msi" command. Note that if you use the "DEPT.MMH"/"COMPANY.MMH" interface then they must be defined within the "COMPANY_VBSCRIPT_FUNCTIONS" macro instead...
Some of the VB Functions MAKEMSI uses to do its job have been documented where I believe it is likely you could benefit from their use. If you feel others should be documented let me know.
In general I don't expect you to need much VBSCRIPT (if any) where I can I try to reduce the need where it can't be eliminated altogether, an good example is with how you can place VBSCRIPT between the "Row" and "/Row" commands. There are a number of reasons for this but readability and reliability are high on the list.