Try this instead...Maybe someone else knows...But Im not sure if the script waits for the Play command to complete before proceeding or not. I moved the $Form.Show above the Play command...Maybe that will have some effect.

Code:
 
if @inwin = "1"
shell "%COMSPEC% /c %WINDIR%\System32\Regsvr32 /s %WINDIR%\SYSTEM\KiXFORMS.dll"
else
shell "%COMSPEC% /c %WINDIR%\System\Regsvr32 /s %WINDIR%\SYSTEM\KiXFORMS.dll"
endif

break on

$Form = createobject("KiXtart.Form")
$Form.Size = 400,200
$Form.Center
$Form.Caption="Christmas Message"
$Form.BackColor = 255,0,0
$Form.Fontsize = 8
$Form.Fontbold = 1

$Multi = $Form.TextBox("",55,30,190,100)
$Multi.MultiLine = True
$Multi.Scrollbars = 0
$Multi.ForeColor = 25,115,9
$Multi.caption = "Hi, " + @fullname + "." + @crlf + @crlf
+ "The ICT department wish you a " + @crlf + "very Merry Christmas and a " + @crlf
+ "Happy New Year! :-)" + @crlf

$Image = $Form.Image("\\tom\netlogon\santa.bmp",270,30,60,67)

$ExitButton = $Form.Controls.ToolButton("Exit",150,$Multi.Bottom+5)
$ExitButton.ForeColor = 25,115,9
$ExitButton.OnClick = "Quit()"

$Form.Visible = 1
$Form.Show

Play File "\\harry\netlogon\chris.wav"

While $Form.Visible
$=Execute($Form.DoEvents())
Loop

Exit 1