Yes, you are right, the trouble mainly comes from the USB driver not supported by Wine.
There are also some great solutions under Linux : NBC/NXC, LeJOS, ...
But neither of these alternatives provide a user-friendly way adapted to non-developper people: you have to write the code in a text editor and upload it with a command line tool.
Another solution is to run it in virtualization (vmware is OK). But in this case, Windows is required...
You are right, Windows is too expensive compared to the wonderful Mindstorms ;-)