Let's divide the problem to two parts. Why? Because we're talking about two scripts.
The first script triggers the cutscene (this is a dialog usually, but can be any script), while the second is a separate script file that is the cutscene's script itself, and nothing else is in it.
You need to add this to the first (primary) script in order to run the cutscene script:
CODE
ClearAllActions()
StartCutSceneMode()
StartCutScene("BLAH1")
Your BLAH1 is basically good, it has a major mistake though: if you want to start a cutscene, the commands that run the script can't be in the
cutscene's script file itself. (Additionally, you used BeginCutScene... instead of StartCutScene... -- the latter is the correct one)
In semantical respect, I don't see why you want to change an area's script (via ChangeAIScript) to a cutscene script... it will end in an infinite loop of cutscenes.
I see your problem now. The solution/explanation: the cutscene SCRIPT must be a separate file. The WHOLE file is processed when the cutscene is run. The cutscene must be run by the proper commands in a dialog (or any other script)
So if you want a cutscene to happen in an area, when certain conditions are true, you have to add a block to AREA script with the proper conditions. And THIS block, when true, will run the cutscene's script!