As much as we all assume we are perfect and can produce bug-free products, reality simply does not allow it.
- If your product works perfectly on newer browsers, it won't work well on older browsers
- If your product is designed for older browsers, it will look really outdated on all browsers
- If your product runs well on newer versions of windows, it won't work at all on old versions; and vice-versa
Since nowadays applications are event-driven, you can never tell in what order the user will use the software. They may do things that you never would imagine.
What you can do is have robust error handling, so that it fails gracefully. E.g.: On the web, if you go to an unknown page, you get a 404; you don't break the Internet.
Nicer still is when you customize your 404 page to be friendly.
At some point you have to decide that the system is ready for shipping, even though it's not perfect. It's a Project Manager's job to understand the system well enough so as to help make the call: It's complete even though it's not perfect.
In a future release you can always decide to improve the product to try make it perfect; or you may decide to add more "almost perfect" additions to it.