Kosmonaut's Isometric Adventures

The most naive approaches of the top of my head.
A is to pre-calculate the motion and if there will be a intersection and simply cancel or dissallow the motion to be applied.
For some single player situations this is fine it even works well. When the frame rate is high and small increments are made. Im other cases this maybe lacking.

B if there is collision to push a object away the problem with that is determining the order and correct situations were a push will actually create a set of improper motions. Such as pushing a entity into or thru other entitys.

Other ways

One is to pre-calculate the position and intersection and place the entity exactly at the limit of were it can move to, this is fine in some situations as well.

Yet another solution is to pre-calculate motion in one pass calculate intersections in time i.e. the fraction between frames the intersection occurred current to future and then perform collision physics at that moment to correct for the collision. This is pretty good normally unless there could be multiple simultaneous collisions at the same point at the same time.

Also don’t forget as well that this is just for narrow phase collision broad phase is still used with this typically such as a spacial grid or quad tree in 3d a oct tree or bsp ect.

prime31 has a port of box2d here if you want to see how he is handling physics i haven’t tried it but i have seen a few examples which are impressive.