Since the beginning VB.NET has had a background compiler that gave developers real-time feedback on compiler errors, continuously updated code-completion data, and a host of other features. The downside of this is that it could not be turned off, too many features relied on always having that data. C#, on the other hand, has been limited to syntax checking and a code completion that is fully updated only at compile time.
This isn't however what Microsoft intended. Since before VS 2005, the C# team has been trying to find the time to catch up to the VB team. With Live Semantic Errors, also known as "Squiggles", they have finally started to do so.
One of the reasons it took so long is that prior to VS 2008, Visual Studio didn't use the real C# compiler for normal operations such as syntax checking. That was handled instead by a lightweight pseudo-compiler specifically designed for that purpose. With 2008's Language Analysis Framework, VS can now communicate with the real compiler.
According to an interview with DJ Park, only files currently open in the IDE will be analyzed. This suggests that changes to an open file that creates errors in other files will not be detected until compile time.
While scheduling demands prevented releasing this in VS 2008, it will be included in Service Pack 1.