Yeah I'd probably push verts down to balance the relief of the model for the house to properly sit on, but that'd be done on a case-case scenario all depending on the shape of the house's bottom. You can also push down faces or edges.
At last, you'll have to adjust the collision for the modified terrain to collide properly. I've made a thread on collisions at:
If you go with importing the Rockstar default collision of the terrain (recommended) you'll have to match the vertices of the collision mesh to the game mesh. I would use 'Snap to Vertex' to move the collision verts into the game mesh verts positions.
As an alternative you could duplicate the game mesh and name it 'col_terrainName', then do the collision materials for the sand, dirt, grass and what not. Use 'Select by Material' to quickly select all faces that represent sand or grass and then apply the respective collision material.
For replacing files you could use an MTA script, or do as you said, replace in gta3.img. If you do gta3.img, you'll have to replace the collision inside the collision archive (which likely contains 20+ other collisions). I use Steve-M's COL Editor for that. If you go with MTA script, all you'll need is a single collision file and a single model file (optionally TXD file if using custom textures).