You can use publisher policy to redirect assembly version.
When there are multiple publisher policy assemblies for the same assembly, the highest version of publisher policy assembly will be used.
Turns out there is a bug in .Net framework v1.0/v1.1, that the alphabetic higest version, instead of the numeric highest version of publisher policy assembly is used.
This bug will be fixed in the next service pack release for .Net framework v1.0/v1.1.
Until then, you have to work around the bug by either making sure only one publisher policy exists for the assembly, or the numeric highest version of publisher policy is also the alphabetic highest version.
This bug does not exist on .Net framework v2.0.