That's odd.
I put the latter inside a print()-function and it worked just fine. Using POL 097 2008-02-26 if that makes a difference.
Code:
var start := Struct { "hp" := CInt(GetVital(caster, VITALID_LIFE) / 100),
"x" := caster.x, "y" := caster.y, "z" := caster.z, "realm" := caster.realm };
print(start);