lennaert Thanks for the reply It's a good guess but it doesn't seem to be what causes the problem.
If I set acceleration and deceleration to 0 when IsOnFloor is triggered then the object will slide along the platform until it either falls off the other side or hits a wall. That's to be expected obviously, but it'll *still* slide off the edge it lands near to in some cases. I'll post a couple of images to illustrate the problem better:
Player jumps:
And sometimes land just long enough to trigger IsOnFloor but *doesn't stay on the platform*:
Acceleration/deceleration set to 0 on IsOnFloor: