Just like Heckno said, intersect object is a frame killer. However, this is how I would code basic collision using the intersect object command if I were to use it.
I had to use a sphere and a box while I did this since I didn't have your models, but it should work quite well with your models.
`load object "c:\track.x" , 2
make object cube 2,10
position object 2,0,0,1000
set global collision on
rem Load object
`load object "c:\boat.x",1
make object sphere 1,1
color backdrop 120
rt#=.6
speed#=.2
do
set camera to follow object position x(1),object position y(1),object position z(1),object angle y(1),5,1,3,0
if upkey()=1
ox#=object position x(1)
oy#=object position y(1)
oz#=object position z(1)
move object 1,3
dist#=intersect object (2,ox#,oy#,oz#,object position x(1),object position y(1),object position z(1))
if dist#>0
move object 1,dist#-4
endif
endif
if shiftkey ()=1 then move object up 1,.1
if spacekey ()=1 then move object down 1,.1
if leftkey()=1 then rt#=rt#-speed#
if rightkey()=1 then rt#=rt#+speed#
yrotate object 1,rt#
loop
Insanity is just a state of mind