I would steer you to read this article on fellow JNet member c0d3rs blog, one of the many good articles on his site. The method that I am going to describe is based on his article.
The part to pay specific attention to is the "Import default route from another vrouter"
http://www.corelan.be:8800/index.php/2009/04/19/juniper-screenos-default-route-manipulations-and-redistributions/
Multiple virtual routers as someone has explained in this thread is one way to do it.
e0/0 untrust zone, untrust-vr
e0/1 internet zone, inet-vr
Create 2 route-maps, one for each external virtual router. They will export their default route to the trust-vr. Route maps are great for manipulating a route as it passes from virtual router to virtual router. For your requirements, you would want to make sure that e0/0 has a higher metric in the route map export. This will allow the route pointing to e0/1 to be active for the default route. That will force all traffic to head to that virtual router, and outbound. Then your more specific vpn routes can go over your e0/0 interface.
**The only thing you need to be careful of during your export is to pay attention to how your default route is appearing. If its a connected route then c0d3rs example is perfect. If its a static, then change the protocol to static.
Message Edited by shadow on 07-24-2009 12:20 AM
Message Edited by shadow on 07-24-2009 12:27 AM