ASP.NET's built-in form control renders an action attribute. Its value is a path that refers to the current page. This is usually the path after a URL rewriter has rewritten a friendly URL to the actual URL. While it looks like a rewriter works properly, you will learn that postbacks don't actually work as expected: they postback to the actual URL instead of the friendly URL.
To work around this, I have implemented a derivation of the built-in HtmlControl in ASP.NET 2.0. You can grab it from the toolbox. The implementation is trivial: I implemented a ProxyHtmlWriter that is used temporarily in the PreRender phase of the HtmlForm (in which the attributes are rendered). This proxy HTML writer takes care of omitting the RawUrl instead, which is the URL that the user should see in their browser.