The sf404 approach works in Classic pipe line mode, but not in integrated mode. The integrated mode works in a very different way, and has wildcard mappings mapped by default - due to the integration between the ASP.NET runtime and IIS, the default integrated pipeline mode handles all requests through a unified pipeline. I am sure there is a way to run both old asp code and to have the rest of the requests mapped to asp.net.
The questions is, are you running the application in Integrated Pipeline mode? if this is the case, then sf404 is not used at all.
When I use the sf404 approach in a local project (running on IIS7.5, Windows 7), here is what I do:
1. Set the pageExtension to empty string in the web.config file - ""
2. Do not add an entry in the web.config in the <customErrors.. section
3. Set the 404 error page in IIS to Execute the following path /37sp2/sf404.aspx
4. Swith to Classic mode
If I request a page which does not exist, I get a 404 not found error (coming from Asp.Net, not from IIS!).
Please let me know about your web.config and IIS settings, as well as if you are running in Classic or Integrated pipeline mode.
All the best,
the Telerik team