uhm...i think this would work...u need 2 more triggers.
let's begin with the first.
Size = 0
Activated = anybody repeatedly
Condition = !isNull (flagOwner eastflag) AND side (flagOwner eastflag) == WEST
On Activation = [WEST] exec "message.sqs"
Make the second trigger the same as the first, just replace each "east" with "west" and vice versa.
Now to the script...you need a new one, since the one which you already have is executed too late (when you're already at your own flag)
;message.sqs
_side = _this select 0
?(_side == WEST): _flag = "East Flag"
?(_side == EAST): _flag = "West Flag"
_msg = format ["%1 has taken %2", _name flagowner, _flag]
titletext [_msg, "PLAIN DOWN"]
playsound "mysoundname"
exit
This is untested and right out of my mind...which isn't always running smooth ;D