What are best practices for bad postal addresses?
I think a location type of something like "Rejected" will give you great flexibility. If you want to get a bit more elaborate, combine the location type with a custom field that tracks the reason for nondelivery.

By using a location type, it simplifies searching, exporting, and importing when you want to run those addresses through NCOA or have a user work through a spreadsheet of bad addresses. When good ones are found and it's time to import, use the API csv Import GUI extension so that you can overwrite the address records, change their location type, and wipe the custom field in one pass.