For a long time the quest to prevent use of the back button was seen as one of the more reprehensible actions done by web developers, second only to the onUnLoad pop-up. I was one of many people who argued that interfering with basic browser functions was 'evil.'
Nonetheless I, as with many other usability professionals, have changed my mind. There are legitimate uses for wanting to prevent the user from using the back button. For the most part there are alternative methods of solving the problem. An example of this is a banking page. After one logs in, transfers funds, then logs out, no one should be able to hit the back button a few time and see what you were doing. Thank fully one can solve this problem without interfering with the back button – but one does interfere with the user’s history.
However there are many online applications where users fill out form information and should the user exit the application – usually because they've been interrupted – then they would lose all the information already entered into the forms.
Can one prevent the user from leaving the current page? No, and this is a good thing, otherwise you might be trapped on web page without an option of leaving. Nonetheless one can force the browser to display warning messages and give the user a chance to change their mind -- preventing users from accidentally losing their work.
What’s important is conveying to the user the importance of not leaving and making certain that the directions are clear.