You just need a whole bunch of triggers and a wee script. For each checkpoint you need a trigger for each player: group the trigger to the player and you'll get new options in the Activation box. Each checkpoint trigger will look something like this.
Activation: player1 present
On activation: P1_Check1=true
The script will run a little loop to check when somebody wins and will then display the correct message. This is not a script, it is just a sketch for the script.
#loop
~0.5
? P1_Check1 and P1_Check2: goto "P1win"
? P2_Check1 and P2_Check2: goto "P2win"
goto "loop"
#P1win
hint "Player1 wins!"
exit
#P2win
hint "Player2 wins!"
exit
This is a very crude way of doing it, which will get messy with a lot of players and/or checkpoints, but it will at least work. Syntax etc not guaranteed.