How do game developers handle the situation of a simulation taking longer to calculate than it does to evolve in real-time? For example with a game loop like this...

Code:
while Runing do begin
  HandleEvents;
  DoPhysics(elapsedtime);
  Render;
end;
...between one DoPhysics loop and the next, 50ms may have elapsed. So DoPhysics must simulate 50ms worth of physics. But what if the calculation of these 50ms of physics takes 100ms? Then the next DoPhysics loop must calculate at least 100ms worth of physics, which might take 200ms to calculate. And so on, until the simulation crawls to a virtual halt!

Does this problem really exist or am I imagining it? If it's real, how does one avoid a situation like this?