I have an ancient mess I\'m trying to shovel into tiers using subsonic. Trouble is, I have this scenario:
When Hal logs in, his login uses database X for lookup data
You shouldn't need to modify the source, you should just be able to use multiple providers for talking to the different databases and switch between them at runtime. Have a look at the following question to see how to do that:
Separate Read/Write Connection for SubSonic