There is no intersection design that could avoid this. Some people are going to be too close to the intersection to stop in time when they see yellow no matter what you do.
(v²) / (2a) ≤ (v × t_y) + L
v = vehicle speed (meters per second)
a = comfortable deceleration rate (meters per second squared)
t_y = yellow light duration (seconds)
L = length of the intersection (meters)
You can calculate the minimum yellow time for this using t_y ≥ (v / 2a) - (L / v)
This is rudimentary and doesn't account for reaction time, but a simple buffer would suffice.
The failure is largely in poor planning and poor human behavior.