Any data visualization should be done off-board the target (cRIO). The robot doesn't care what you see on the screen, so why should it do any extra work to put it there? You just need to set up your robot to pipe the required data to an external viewer.
The dashboard classes built into WPILib are probably the easiest way to pull data off of the robot. The Labview example dashboard is probably the easiest way to view this data. You don't need to worry about any of the transport methods, and can just concentrate on doing things that matter. We used a custom Labview dashboard quite frequently to plot sensor inputs/motor outputs over time to help tune our control loops.
If you really are opposed to using free functionality, you can set up your own socket connection to the target and pump the data through manually. Or run a http server on the robot and fetch selective data with http requests and return JSON/XML. Or whatever you want, really.
Edit: I forgot about this. Seems pretty cool.
http://code.google.com/p/webdma/