With IPN there is not user experience that will result with the user going to a success or failure page. You will not know this at the time of the transaction.
You can store the order information when you are on the confirm page, but you cannot assume that the transaction has or will occur successfully. This is what you need to the IPN page to do for you. The page is one that will never be visited directly by a user, it will only ever be posted to by PayPal with the details of the transactions.
This is why you need to rely on this page to update the order status in your db. It is also a great place to add in an email receipt to let the customer know that the transaction occurred successfully and any other post processing stuff that you would like to do.