It used to be a common thing, with so many rivers and so many places built along the rivers in the mountains. Not as much any more, at least in the northern flatlands, where the DTD (Dunav-Tisa-Dunav) system of canals was built during the period of late fifties into mid-seventies, and pretty much every river or canal has at least one level of levees, plus a flood buffer area with a stretch of forest between the first and second levee.
However, the levees were never completed south of the Sava-Dunav line. To worsen the situation, there's complete lack of maintenance since the end of socialism, so the silt and all kinds of garbage are accumulating in the riverbeds, the levees are not built or are even removed in some places to ease the access to various businesses. The common cycle was that they get flooded every decade at least once, then get cheap loans from state banks to rebuild and repair the damage - but there's never a consensus about putting together some money to fix the cause (in socialism) or if there is, it's built of spit and polish, costs at least double (skimming is common) and may even do more damage than fix the problem (that's the recent capitalism).
Hence the big floods of spring 2014 shouldn't have surprised anyone. Even Belgrade had sandbag lines on its river banks.
This is not specific for Serbia - it's all over the region, and probably in most of the transitioned countries. The floods did even worse in Bosnia, and even in Croatia.