When updating a solution from Visual Studio 2005 to Visual Studio 2008 I encountered a rather weird problem with test projects. The tests would all pass as expected except for those that specified an expected exception using ExpectedExceptionAttribute. The resolution turns out to be fairly simple.
In upgrading the project the conversion wizard does not change the version of the test assembly that the project references. It's left referencing 8.0.0.0 instead of the correct 9.0.0.0. Everything still compiles and the test runner will correctly identify test classes and methods. It just won't recognise the ExpectedExceptionAttribute. Deleting the reference to the older version and adding a reference to the newer one fixes this issue.