Instead of just showing a load indicator or sending out a confirmation email, keep the user updated. Let the user know what is taking so long and how much more waiting there is to do. Provide upload progress graphics, explain what is going on in a simple message, or send emails to the customer knowing when his or her product is shipped and when it is going to arrive.
Give your users a clue about what is going on behind the scenes, and they will stay happy – even though they’re still waiting.
Read the Speed in software design blog post to read more about ways to prevent putting users on hold.

Landing Page Design
28 Aug, 2009
Well said. Also, as mobile companies do, if you are dealing with a commercial software, showing users cross promotional offers and upselling offers can be a great thing. Just reinstate the message after the purchase or action is fulfilled.