Dikes contribute to, rather than cause flooding. Flooding is fundamentally caused by more water coming down than can flow through the river system. I know, "duh...". But you have to get that to get why dikes don't work.
Dikes are problematic because they seek to contain a volume of water that is larger than they can logically hold. When a river is channelized, straightened, and diked, it loses capacity. Think about it for a bit. Between point a and b, if the river bends back and forth like a snake, for a given depth of water, it will hold more water. So, if you straighten it, it loses it's ability to buffer a flood.
Next, the flood plain itself is a reservoir. The more flood plain room you have, the more room the river has to spread out, and the less it has to rise when the flooding happens. If it has a little room to spread, any given flood is minimised.
When our friendly corps of engineers dikes a river, they typically try to straighten it as well, so they can build less dike. The problem is, they can't add slant to it, so when the flood waters come, the river speed doesn't pick up enough to handle the inflow. The water backs up, and ultimately goes over the weak point in the dike, with the attendent disaster. Remember all the footage from the mississippi a few years back?
So what is happening is that a flood height that would have been x feet high if allowed to spread over the flood plain gets squished up into some x+y higher height, because it's squeezed into the dike. Kind of like squeezing a balloon - it has to come out somewhere.
The Corps is having a hard time with the simple math exercise that diking requires, because a dike that is big enough for a 500 year flood is just too big to be economically feasible. A simpler solution would be to remind people why the land next to the river bank is flat, and tell them that if they build a house there, it's their problem when the river comes up.
_________________________
Hm-m-m-m-m