I came here to find a solution to the same issue and noticed the question wasn't really understood.
On some Milling machines the X and Y axis's can be out of square to each other rather than being 90 degrees.
This can be due to wear or errors during production and it makes it very difficult to for example produce a square shape, it'll wind up being trapezoidal.
Similar problems can also happen with a Z axis on a milling machine. You can sometimes shim the column into square but it's difficult and affects rigidity, other options can be even more complicated especially when your talking about a column and head weight of 200kgs or more.
To be able to input an offset value over a specified length of travel would be an excellent solution.
Z axis compensation would have to be for two directions to compensate for squareness between the Z and X, and Z and Y.
Example for every 300mm of travel along the X axis add or subtract a certain number of steps evenly distributed during that specified length of travel to the Y axis.