Full Text Search Term Casing Affects Results
This is documented although I couldn't find a reference in Books Online:


  The rules for characters followed by nonalphanumeric characters are
  somewhat convoluted (at least in English). The English word breaker
  accepts the token C# and returns C#. The lowercase token c#, however,
  is indexed as c with the # character stripped off. The uppercase token
  C++ and lowercase token c++, on the other hand, are both indexed as
  c++.


"Pro Full-Text Search in SQL Server 2008" - Michael Coles, Hilary Cotter, p106

You can check the behaviour of your search phrase using the sys.dm_fts_parser DMV, eg

SELECT * FROM sys.dm_fts_parser ( 'microsoft AND c#', 1033, 0, 0 )
SELECT * FROM sys.dm_fts_parser ( 'microsoft AND C#', 1033, 0, 0 )


As a workaround, you could force all strings through as upper-case, use some kind of mapping table for common search terms, or design a strategy to ensure non-alphanumeric characters are never stored or queried as part of the full-text index.

Note the behaviour is more consistent in SQL 2012 (where both lower and upper case will return only 'Microsoft C#').