I am wondering why .Net IoC containers do not easily support multiple implementations for a single interface! May be I am wrong, but as far I have seen, frameworks like Nin
I advice to look at Convention over Configuration and especially Convention Based Dependency Injection and context-based dependency injection. Most of IoC if not all supports both approaches. You could find many interesting samples with different IoC libraries, when several implementation bind to one interface, and how useful it could be.
For example ninject does support binding of several implementation of one interface: depends on context or attributes, by names, and so one.
Following snippet binds on implemetation depends on target type automaticaly:
Bind().To().WhenInjectedInto(typeof(OnLandAttack));
Bind().To().WhenInjectedInto(typeof(AmphibiousAttack));
Very helpful when you configuration is in XML or database. Take into account InNamedScope also:
Bind().To().Named("Strong");
Bind().To().Named("Weak");
With different dependency configuration at different parts of your project.