Write your unit/regression testing for everything as you go.

When you make any change, run all the tests. Either a previous test will catch some breakage (most of the time), or you will find some new interesting border-condition breakage (write a new test to cover that too), or nothing will have broken at all.

This kind of testing methodology makes even large-scale system changes very impact-free.