mine does the exact same; however, it only works on vehicles with datablocks that have isEnterOnClickOnly = true. since onCollision has been packaged, i had to rewrite the vehicle collision code, and that's whats preventing me from releasing.
Couldn't you just package the onCollision function to check for the case of
if (%db.isEnterOnClickOnly && !%obj.isClickToEnter && %obj.getClassName() $= "Player"), and if so set a variable on the vehicle to the player's ID, call the parent, then clear that variable. Then package minigameCstar fishe, and check if you've got a player and a vehicle, and then if the vehicle has that variable set to the player. If so, set $lastError to 0 to prevent an error message, send your own error message, and return 0 to prevent mounting.
Basically when trying to jump on the vehicle, you'd be using the same onCollision, but sabotaging a critical function so they won't be able to get in. Then your click script tells it to skip the sabotage and carry out the onCollision naturally.