Well, I find that DBC collision is quirky. Always call SET OBJECT COLLISION ON after you create or load an object. Call SET OBJECT COLLISION OFF when you no longer want to test for collision for that object. Do not use the GLOBAL COLLISION COMMANDS. If you scale an object, set collision off then back on and make sure you reset the collision type.
I might change your code to read:
make object box 3,50,50,50
set object collision on 3
position object 3,-300,20,-300
make object collision box 3,25,25,25,-25,-25,-25,0
make object cylinder 1,50
scale object 1,100,140,100
set object collision off 1
set object collision on 1
texture object 1,1
position object 1,0,35,0
make object collision box 1,-25,-35,-25,25,35,25,0
Also, whenever you use make object collision box, the collision will only be detected by other objects that have used make object collision box or make static object collision box. It will not detect collision with objects set up with SET OBJECT COLLISION to boxes, spheres or polygons.
Enjoy your day.