Same OpenGl code - three different behaviours on three different machines.

I have a program that I wrote that is behaving completely differently on all three of my test machines.
The behaviour is coming from gldrawelements(). On my crappy work laptop (with an Intel graphics chipset) everything draws perfectly. It provides opengl 3.0. On my desktop at home with an ATI Radeon HD 5770 I get a machine exception when it hits the gldrawelements function. This machine runs Opengl 4.2. Finally, my crappy Lenovo laptop with a ATI Radeon Mobility chipset runs the program but doesn't display anything drawn with gldrawelements but doesn't crash. This is the same binary on three different computers. Making the situation more bizarre is that all three machines work perfectly with glDrawArrays. The only thing I can think of is the opengl version each is using? Why does the crappy intel chipset work perfectly? I am running WinXp on my work laptop, vista on my desktop, and win7 on my personal laptop. All have updated drivers.

I have attached the precompiled code below, its in Euphoria so I am not sure how much help it will be. Also, if my code was bad, why does it work perfectly on my work laptop?

I have a compiled OpenGL program with the following EU code. The entire codebase is way too large to post. I can provide a binary if anyone thinks it will help.vbo creation:----------------------------

The code looks convoluted. I agree with Steven McGrath. Your call to
glDrawRangeElements looks bad.
Your start and end values are the same. If you are rendering vertices 0, 1, 2, 3
then your values need to be 0 and 3.