can write you one quickly and for free.
action any_ent()
{
//add this to all ents
c_trace(my.x,vector(my.x,my.y,my.z-5000), IGNORE_ME | IGNORE_PASSABLE);
my.z =hit.z+my.min_z;
// do the rest of the ent code here
}
If you place the object in wed close as you can, this code will drop it to the ground. If you have issues with this (because it's untested) please start a new post in the code section
EDIT - also
// at top of main
#include <level.c>
action any_ent()
{
c_trace(my.x,vector(my.x,my.y,my.z-5000), IGNORE_ME | IGNORE_PASSABLE);
ent_place_z(my,hit.z);
// the rest of the action here
}
please look at the script level.c inside the include folder