I often use undead monsters (skeletons, zombies, ghosts) as some of the major enemies in the games I make for three reasons.
First, the undead are obviously not human, not even life-forms - they are evil, wrong, and against the natural order - therefore fighting them is a classic symbolic struggle against evil forces by the forces of goodness. It is not about struggling against other human beings for supremacy, which gets into anti-human areas such as racism, imperialism, and class-ism (who is more worthy of supremacy, how do you divide good and bad in a human population, etc). The struggle is not about killing living things at all, but about ridding life of obstacles which hinder its fullness.
Second, the undead are DUMB. It gives a nice picture, symbolically, that the battles we have to fight for our own liberation are not with evil intelligent beings, but with dumb, unthinking forces, such as fear, or other painful emotions that can grip a person, and make them behave 'like a zombie'.
Third, ghosts and skeletons symbolically refer to things we need to deal with from the past, and that is also one of the major areas people, and societies, need to address to move their liberation forward. To vanquish a ghost is to lay the past to rest.
See the previous post in this series about symbolism, about Deserts.