I don't know much (if anything at all) about CSharp's Excel API, but seeing as nobody else has tried to answer this question yet I can't say you have any better options. : )
Having perused some documentation, I have found that the Excel._Workbook.SaveAs() method allows you to specify a filename, among other things. If it is true that the Save() method is only opening the SaveAs dialog on Win7, it could very well just be a bug in Win7. I would suggest, to temporarily avoid this bug, you should use the SaveAs() method instead of Save(). All parameters are optional and filename is the first one, so you could hypothetically just pass it the filename of the current file and that should achieve the same functionality as is intended from Save().
IF this is a bug in Windows 7, I think this would be the best/least painful way to get around it. Hopefully this helps.