I can confirm it. At least this is how it works with start issued from the Shell with Mozilla SeaMonkey browser of the most recent version, with Windows 7. It looks like the anchor is ignored.
Interestingly, if I use the Web browser application file directly, it works correctly. For example, this should work:
string browser = string commandLine = "file:///D:/Folder/Default.htm#Product.htm";
I do understand that this solution is not very good, because it is not universal, but what you can do if we have such a defect in the Shell (because this example shows that the browser works correctly, so this a kind of defect in the Shell API, not the browser)?
You can improve it using the same code, only you would need to calculate the
full path name out of the data retrieved from system Registry.
Use the Registry key:
See also this CodeProject article:
Read, write and delete from registry with C#