SRD:
That pretty much sums it up. In your diagram, Goolpsy, A can bull rush D into square X, so D would move to its last legal position -- but that position is occupied by A, so D moves to the closest legal position. If more than one position is available, roll randomly to determine which...