There are two very important concepts here:
You can only be hurt by someone you chose to trust.
A chain only exists instantaneously while a payment is made.
The answer to your question depends on whether David pays Charlie or not. If David pays Charlie, then David gets hurt because he trusted Eve and she betrayed him. If David doesn't pay Charlie, then Charlie gets hurt because he trusted David and David betrayed him.
David learns a valuable lesson here. If you trust someone, you may wind up on the hook for the full amount you were willing to trust them for. Your choice will be to make good on them or betray the trust that people have extended to you.
Alice still holds an IOU from Bob and she agreed to trust Bob. Unless Bob betrays her, she's safe.
Now, this may not be exactly what happens. For example, if David can find someone else who will take Eve's IOUs that leads to a payment path to Charlie, he can meet his obligations and stick someone else who chose to trust Eve with her worthless IOUs. So you may get a game of "hot potato" with someone getting stuck with it last.
It is important to understand that when you extend trust to someone in Ripple, you are trusting them to hold your money -- money you may owe to other people. It should not be done lightly, except perhaps in small amounts.