You will have to use PBR as you want to route packets based on their source addresses. In your case, 'policy based routing with object tracking' feature can be helpful.
http://www.cisco.com/en/US/tech/tk364/technologies_configuration_example09186a0080211f5c.shtml
http://www.cisco.com/en/US/docs/ios/12_3t/12_3t4/feature/guide/gtpbrtrk.html
Here interesting traffic is matched using ACL and its next hope will be set based on its availability using command: set ip next-hop verify-availability. Sequence number in this command can be used to specify primary and backup link for those matched packets. For example:
set ip next-hop verify-availability 10.1.1.1 10 track 123
set ip next-hop verify-availability 10.2.2.2 20 track 124
Above command set the next-hop to 10.1.1.1 if object 123 is up. If object 123 is down, the next hop will be set to 10.2.2.2 if object 124 is up. If object 124 is also down, then policy routing fails and unicast routing will route the packet.