It might be enough to simply vertex edit the terrain so any vertex that is above the road would be moved under it. If it's a driving game then having some little gaps at the edge of the road might be acceptable.
The other option I think you should consider is making the road from a copy of the terrain. If you take a copy, and delete any polygons that aren't road, then on the edges of the road terrain, you can set the alpha to 0. Then in DBPro (or whatever), if you use 1-bit alpha transparency, the road will smooth itself out, so a quad with 1 vertex set to 0 alpha would actually be a perfectly smooth corner. It's quite a handy trick, as it means that the road is infinitely smooth at the edges.
When I did this, I used memblock terrains and a greyscale overlay image with the road drawn as a white line then smoothed out - then I just apply the alpha to the relevant vertex depending on the overlay image. I think it actually used an advanced terrain then build the road meshes on top of it as separate objects.