Ok, before you go saying "it doesn't work", I know, thats why I worked on it some more and thoroughly tested it.
Ill attach the .sqs file and you can download it by clicking on it at the bottom there.
But first, I need to explain how to use it. Whenever you are ready to make the helicopter start its insertion run, execute the command like this:
[heloname,building,zpos,direction] exec "RoofInsertion.sqs"
Heloname is obvious, building can either be the name of one placed in an editor or one on the island (object ID#), direction is a number (0-360) that will tell the helicopter what direction to face before landing (0 = N, 90 = E, 180 = S, 270 = W), and zpos. Now, zpos is very important here, zpos is a number representing the height of the building, and you will need to figure it out depending on the building type (through trial and error), you will know if zpos is to small a number if the helicopter (when it reaches the building) doesn't attempt to land and just sits there, and if it is too large a number, the helicopter will attempt to land, but will stop short of the building and will hover higher than the roof, so then you know you need to decrease the number. Now, I have no idea what any other building's zpos should be, but for the small, 2 story nogova building with the green roof, its exactly 20, and I can assure you that the 4 story one is NOT 40 and the 8 story one is definatly NOT 80. If I were you I would start at 20 and if thats too low, go up by 1 each time, and you may (not sure) have to use a decimal.
Ok, hope it helps.