You could try this:
Script named "stopCar.sqs"
_car1 = _this select 0
_car2 = _this select 1
_dis = _this select 2
@ _car1 distance _car2 < _dis || {canMove _x} count [_car1, _car2] < 2 || ! isEngineOn _car1
;the script waits until one of the above conditions is true
? {canMove _x} count [_car1, _car2] < 2 || ! isEngineOn _car1 : exit
;if _car1 turns off his engine (like being out of fuel or engine is damaged) or either car is damaged to the point of not being able to move there is no point in the script continuing
_car1 lockWP true
;this locks the current waypoint of the car being chased (he will not resume following waypoints until the command "_car1 lockWP false" is used.
_car1 move getPos _car1
;this makes the car stop because he is already at his present location
@ speed _car1 < .1
;script waits until _car1 slows to almost a complete stop
_car1 setFuel 0
;sets the fuel of _car1 to zero so he cannot drive away
exit
Call this script using something like:
[badcar, policeCar, 10] exec "stopCar.sqs"
You would be the in the policeCar and the other car would be the one you are chasing (the badcar), but use whatever names you want for the two cars. The distance for the car to stop is 10, but you can change this also.