Network Balancing / Failover with MPLS and IPSEC Tunnels
Solution 1:
This would depend on what your ISP provides you with in the form of routing. As long as your 2800 and the ISP's 1841 are exchanging routes and the 1841 is exchanging routes with the provider edge, it should "just" be a matter of configuring dynamic routing or floating statics across VPN links over the DSL link(s).
So that in the event of one (or more) sites losing MPLS connectivity, the routes across the DSL network would be the most preferred, but with an active MPLS link, the MPLS network would be preferred.
Solution 2:
You should be able to have the VPN over the DSL act as backup link to your MPLS and vice versa pretty easily using floating static routes.
This article gets into some additional details of using tracking interfaces and such that is a more advanced solution: http://tcpmag.com/qanda/article.asp?EditorialsID=394
Using the DSL/VPN if the MPLS circuit is maxed out could be significantly harder. What determines maxed out? When the traffic flips over and the demand on the on the MPLS goes down, does the traffic then flip back? This sort of thing can be difficult to engineer in such a way that you don't end up causing more problems than you solve.