That way you get exactly the same result but it also allows you to support older browsers, crawlers etc.
With MVC this is quite easy to realize with simple views with different extensions. For example let's say we want to load a product listing.
We will have 2 urls which the server will respond to:
The first one will generate a classic full page (so with navigation etc):
It would be smart to load the view of products/index in this template so your products table is only coded once off course.
The other one will just generate the table with the products:
Offcourse the urls are flexible, you can also load for example: products/index.html and product/index.xml for example. It doesn't matter for this example. As long as you have 2 separate urls.
This will return a normal full page, there is a div which might be filled with ajax but otherwise is just not visible:
<a href="/pages/products" id="productslink">Products overview</a>
Then you add the jQuery add a onClick handler to the link:
e.preventDefault(); //make sure the link doesn't work anymore
You can do the same with forms, just make a working HTML form. The attach the actions with jQuery afterwards and it will always work.