ipn_main_handler simply starts the first of 3 stages for Express Checkout.
do you mean that ipn_main_handler will run at checkout_shipping page? I check the header_php.php or checkout_shipping ,not connecting with paypalwpp.php
The before_process() method is called during the final 3rd stage after the customer confirms the final purchase details.
As you can see my photo, the pink hightlight is detected using firebug ,the confirm button will leeding the next page to ipn_main_handler.php. and no before_process() in ipn_main_handler.php