The way I do this can only be done on platforms without "lips" at the edge, like Battlefield and Smashville, and some platforms like Delfino's base platform, etc. The way the game physics for differentiating between zair/grapple works has to do with Samus's horizontal position from the ledge.. To use a math analogy, if the ledge is the origin, or x=0, Samus's zair will act as a grapple whenever samus is x<0. When Samus is horizontally beyond the ledge, or x>0, she will zair. Because the ledges on Battlefield have that inward slope (no math pun intended), you can zair from the area between the ledge and the end of the slope. I exploit this by ledgedropping, double jumping, DIing forward until I'm in that area/past the ledge, then rising zair through the ground. The rising part is important because if you wait too long til you're over the edge, you don't have some invincibility frames or whatever, and like you said, the zair will stop short if you cancel it by landing. To get the full extension it has to complete the animation in the air, which is what rising grapple allows. Haha, this analogy sucks, but it's important to understand the concept rather than just the input. It will help later on when you need to mix things up, like you said.
I hope that clears things up.. Just play around with it. You'll see it's difficult to do on FD.. In that case, you have to wait til youre above and beyond the ledge. Rising zair isn't an option.