I made a boss for our Dragon Blaster demo (http://www.dragonflame.us/dragon_blaster.php - press Y 3 times to skip to the boss and again to cycle powerups) that has a number of scripted attacks. I'm at work right now so I can't go into a huge amount of detail, but the way I did it was that I gave him a bunch of instance variables so he could keep track of his current state. One of them was his current attack, and on every frame that would activate a specific segment of event script that would execute that action.
To expedite this I gave him a couple of generic abilities, the first being simply to shoot at the player if a particular instance variable was set and the second being to go to a specific screen coordinate and then set the current action variable to a given value when the boss reached the destination. So that way I could set up things like "Go to the middle of the screen and then move XXX" where XXX is next event in the chain.
Every move would terminate by setting the current move variable back to an idle state. The only thing that move did was select another move at random from the current list (he has different moves in his two phases), making sure that that move wasn't the same as the move he just did so he never does the same thing back to back.