Nice explanation from opengl.org

OpenGL allows extensions by hardware vendors. OpenGL has a protocol and low level API to discover what these extensions are and the supported functions. Using extensions in your C++ code is - unfortunately - platform specific. The address of the function (function pointer) must be retrieved from the OpenGL implementation (e.g. hardware driver). Under Windows this can be done using "wglGetProcAddress".

GLEW is a common API to write portable code which internally hides the platform specific detail. So you will be downloading GLEW for each platform and the client programs can stay portable as long as the target platform supports a GLEW implementation.