I use Excel via COM automation (in c#), but it seems that the problem has no control over what version of excel is started on the box - we use both Excel 9 and Excel 11 and
It's nothing to do with CurVer. This is COM. As with all COM applications Windows finds out how to start them by referring to the LocalServer or InprocServer settings in the relevant CLSID key in the registry.
The CLSID for Excel is:
{00024500-0000-0000-C000-000000000046}
If you look at this key under HKCR\CLSID (HKCR\Wow6432Node\CLSID is you are running a 64-bit edition of Windows) you will see these keys. If Excel 2003 and Excel 2007 are installed, all three of these keys:
HKCR\Excel.Appplication
HKCR\Excel.Appplication.11
HKCR\Excel.Appplication.12
Will point to the same same CLSID which is why Windows only knows how to start one version of Excel.
If you find that Excel 2003 is being started its because the sub-keys of the CLSID point to the OFFICE11 installation.
To change this behavior change the path to point to the OFFICE12 (or OFFICE14) path. Windows will use the Unicode variant of the command by preference (which is unintelligible). So unless you know how to update the Unicode just delete the 'command' values.