It's a Skype bug that James will probably be able to work around programmatically when he has the time.
In the meantime, you should be able to use the error generated by the first event trigger to make sure that your command works properly.
That is, you can use the fact that Skype.Answer fails with the first event, like so:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.4.5-->
<command id="598" name="Workaround Skype bug" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Skype.Answer</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="True">
<ifType>LastActionSuccess</ifType>
<ifParams>&&</ifParams>
<then>
<action>
<cmdType>VC.StopMacro</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>setyourvariables etc.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<event>Skype.clsRinging.cltIncomingP2P</event>
</command>