Yeh, I have the perfect way.. hehe -- I used it for the scoring in the (highly unfinished) pong map I sent in for the competition. You'll need a trigger_multiple and a few math_counters.
Create the trigger_multiple across the starting/finishing point.
Then, you'll need to create a math_counter. In the properties give it a name and set it's maximum legal value to 3. (When I say set it for three, that's assuming you need 3 laps; Set this number at how many laps you'll need)
In the output tab of your counter, add the entry:
My output : OnHitMax
Target entities named : The name of your math_counter
Via this input : Subtract
With a parameter override : 3
Also.. add another "OnHitMax" output for what you want to happen when someone clears 3 laps.
Now, back at the trigger_multiple. In the output tab, add:
My output : OnTrigger
Target entities named : The name of your math_counter
Via this input : Add
With a parameter override : 1
So.. The trigger multiple adds "1" every time someone crosses it to the count of the math_counter. Once trigger_multiple adds up a count of 3 to your counter, the counter will "subtract" 3 (Resetting the counter) and then it will do whatever output you added for when a player completes the third lap.
IF, you need something more complex such as a visible counter for each lap completed, you'll need to follow the same steps. But, it will involve a math_counter for each lap that you have, and all of their outputs will need to be set up to activate and deactivate whatever you intend to act as a counter for the players to see. Once you reach "3", you'll have to set up the last counter to reset all of your counters.
Just make sure people dont run back through your trigger multiple.
If you can get use out of that, then yay ^_^
If you need an example map, ill be happy to set it up.