From my experience as an electrical engineer working for a distribution network:
* The traditional approach to network planning: take your edge cases (e.g. winter peak demand), and apply your engineering knowledge and intuition to manually study the most onerous outage conditions.
* This will vary on where you are in the world, but networks tend to have a good amount of slack built in.
* As networks become more complex, and the cost of computing has fallen, it's more feasible to automate contingency analysis (think about the number of different outage combinations for an N-2 scenario).
FWIW, the internal tools that I work on makes use of networkx to determine contingency cases.