The problem is that wind is effectively added to the airspeed vector for aerodynamic calculations - the resulting change in lift and drag depends on the lift function, and can't be coded by a general function....
Not quite.
Wind doesn't affect the flying characteristics at all. If I'm flying in a 20knot steady headwind, the plane will handle (relative to the air) exactly the same as if it was a calm day. If I'm travelling at 100knots indicated in that 20knot headwind, the plane can't tell the difference between that and the 100knots indicated in calm air. It has no effect on lift or drag at all.
Now, the
pilot can certainly tell the difference, looking out the window he sees that his ground speed is much lower than his airspeed, but the plane doesn't care about the ground until it hits it.
You could probably adapt the method I used in
http://www.orbiter-forum.com/showthread.php?p=21004&postcount=16 to manually apply the wind effect. The Orbiter core will think that the ship is moving at a given speed, but you're moving it an additional amount each timestep in order to account for the wind. Since the wind is just a velocity, you know exactly how much extra to move the ship by each timestep. At that point, the only hard part is the takeoff/landing bit, but you might be able to do something slightly different in that case--you let Orbiter think that the ship is moving w.r.t. the wind, while you actually adjust its position to keep it moving straight down the runway...that still doesn't solve the problem of transitioning between the two modes, which is where the "fun" of crosswinds really comes into play anyway.
If someone else wants to tackle this, post away, otherwise I'll probably spit out a quick prototype of wind during flight (not worrying about the takeoff/landing transition yet) sometime tonight.