I just got this to work.
Basically, you need to set up 2 Flat rate shipping types. Each of those shipping types gets a "predicate" on the Conditional Actions page. Set up the predicates so that one has a condition of what qualifies for free shipping (or any other special shipping) and set up the other to have the opposite conditions. Then on the checkout page, the correct shipping type shows up.
