Do you remember testDummy's advices?
They were the right ones.
Have a close look into the manual, even experienced programmers have to have a look into it from time to time, to remember the right use of the engine's functions.

As testDummy said - I don't know, why he removed his post - the flag 'my.POLYGON = on;' has to be set only for the NOT moving entities! Not for the player itself or any other moving entity!

From the online manual:(you make the most effective use of it, when you push CTRL + F(at least in firefox and netscape) and then search for a certain index)
http://www.conitec.net/beta/collision.htm

Quote:
POLYGON Use this for sprites or models that should act as polygonal obstacle. Don't use it for moving actors!


Another thing:
When you push F11 twice, you'll see the bounding box of the entities. Set and reset c_setminmax to see how it changes.
For moving it should be a bit above the ground, you can achieve this with the following combination:
A) set the bounding box slightly _above_ the ground, and
B) reduce the bottom part of the bounding box a bit with min_z = 0; for instance

In the manual it is the term c_move, where you find an example of a move code:

http://www.conitec.net/beta/ac_move.htm

Quote:
// determine the ground distance by a downwards trace
var dist_down;
if (c_trace(my.x,vector(my.x,my.y,my.z-5000),IGNORE_ME | IGNORE_PASSABLE | USE_BOX) > 0)
dist_down = my.z + vFeet.z - target.z; // get distance between player's feet and the ground
else
dist_down = 0;


Completely other possible reason for your problems:
How big is your player entity, IMO a size of about 40 quants is a good size for such entities - but it is possible that others have different experiences.