Not currently familiar with the C# implementation of the bindings; haven't used C# for 3 years. When you create an instance of InternetExplorerDriver it is going to try to find the IEDriverServer.exe and execute it. With other bindings the IEDriverServer.exe either has to be in your path or you can set a property to tell the bindings where to find the executable. Does the @"..Documents\Visual Studio 2012\Projects\Drivers" tell the bindings this is the location of the IEDriverServer.exe? Or is the IEDriverServer.exe in your path?
I usually launch my tests from a batch script. The batch script will have something like:
set SE_HOME= @rem put the location of IEDriverServer.exe and ChromeDriver.exe here
set PATH=%SE_HOME%;%PATH%
Then I launch the tests from this batch script. When the RSpec runs it will pick up the new PATH and find the IEDriverServer.exe from the PATH variable. I know this works and it eliminate one possible issue that might be going wrong. I cam also put all the Selenium files in the SE_HOME directory then set the SE_HOME directory to NOT inherit the security properties from the parent. Then I don't have issues with security permissions on Windows machines. When in an enterprise environment it is not uncommon for operations to push group policies to machines which then alter known directory permissions, especially C:\.
The fact it does fail 100% of the time is unusual. Something has to be altering the state of the machine. Look for patterns. Does it fail during certain times of the day? Is the IEDriverServer.exe on a network drive? Does it happen when everyone is at work but not during the evening? Is there a network backup or other activity happening around the same time your tests are failing? What are all the technologies involved in launching a test? IEDriverServer.exe is one thing. Are you using a hub on a different machine? iexplore.exe (Internet Explorer browser) is used. This is key to the operating system. Do things fail during system updates? Do they put IE policies to your machine? I often create a VM then load a VM image from
http://dev.modern.ie/ on my computer. I then test against RemoteWebDriver on my VM rather than InternetExplorerDriver on my local workstation. This way I control the settings and policies on the VM rather than being at the mercy of enterprise operations.
The key to resolving this, at least for me, is figuring out why it is failing in the first place. Figure out all the technology involved. Examine why each part might fail. Do things which test individual parts of the tech stack so you can isolate what is working and what might be failing.