Who says C# 3.0 could only run with .NET 3.5!!!
Visual Studio 2008, .NET 3.5, C# 3.0, VB 9.0, ASP.NET 3.5, etc…
One of the goals of these Microsoft's development program is try to loosen the tie of framework, language and tools or IDE. In other word, flexibility and backward compatibility is important.
Maybe most developers have already known that in Visual Studio 2008 we could do multi-targeting frameworks (.NET 2.0, .NET 3.0, and .NET 3.5). A lot of developers get confuse that we just could only code in C# 3.0 with .NET 3.5.
Luckily even we choose .NET 2.0 or .NET 3.0 as the target framework, language capability LINQ, extension method, etc in C# 3.0 still run well. So the key is, C# 3.0 (the language compiler is integrated in VS 2008), we can do query expression (LINQ) there.
Those are language things. About the API / Framework, that's fully, depend on which version of .NET you use. If you use .NET 2.0, even though C# 3.0 as the language, let's forgets the "LINQ to SQL", you could not use the handy ORM from Microsoft because this API are located in .NET 3.5.
Hope that this post could clarify your confusion with VS 2008, .NET, and languages