I tried to compile following program (main.cu) with the nvcc (CUDA 5.0 RC):
int main( int argc, char** argv )
std::cout << "Pure CUDA" << std::endl;
NVCC invokes the normal host compiler but not before it has done some preprocessing, so it's likely that NVCC is struggling to parse the Eigen code correctly (especially if it uses C++11 features, but that's unlikely since you say VS2008 works).
I usually advise separating the device code and wrappers into the
.cu files and leaving the rest of your application in normal
.cpp files to be handled by the host compiler directly. See this answer for some tips on getting this set up with VS2008.