By any chance, are you using IE as your web browser? IE generates it's own error pages for some response types rather than using the error page from the server. You can turn this off by choosing something like Tools->Internet Options->Advanced Tab->Show Friendly HTTP Error Messages and un-checking the check box.
Another option I have heard of is to change the HTTP Error status code to 200 - OK (response.setStatus(200)) in your error page. It stinks that you have to break standard defined HTTP codes to make things work with IE