Well I thought I would update this for future searchers. Neither haegarr nor myself have come up with a simple solution for the non-linear interpolation problem. In the end I have resorted to setting the depth values myself via the fragment shader, which works fine.