To keep VMWare as combatible as possible, VMWare includes sources and
binary code needed to compile it's kernel modules for the version of
the Linux kernel you are running. This saves VMWare from having to
provide an update for it's products every time a new Linux kernel is
released.

In order to compile the VMWare modules, you need header files for your
kernel as well as the C Standard Library headers. (Possibly others as
well, I don't recall.)

http://en.wikipedia.org/wiki/Header_file
http://en.wikipedia.org/wiki/C_standard_library

A header file commonly contains forward declarations of classes,
subroutines, variables, and other identifiers.

In order to use the classes, subroutines, variables, and other
identifiers of a library in your code, you have to include the header
file in your C code and the header needs to be available when you
compile. There's more to it than that, but I only had two semesters of
C++ and I never looked at it again... :)

-- 
Andrew S. Zbikowski | http://andy.zibnet.us
IT Outhouse Blog Thing | http://www.itouthouse.com