I am a bit of an arduino noob and I don't know much I2C. I have the NXT kit and I want to use the ultrasound sensor with my arduino instead of buying the PING sensor. I also don't want to buy the NXT shield. Is there any software way to interface with the sensor? I just want to be able to take continuous data readings, I am using the UNO. Please help as I don't understand any of these protocols.

You probably know this, but each protocol is essentially just a language for data transmission. You may understand english, but someone else may speak Spanish. If you aren't speaking the same languages with the proper grammar, then you can't understand each other.

I2C is a simplistic communication protocal developed for communicating over a bus with two wires. More can be read about it here:http://en.wikipedia.org/wiki/I%C2%B2C

In terms of using i2c to interact with the sensor - I have never done this with any of the NXT hardware, so if you have access to an oscilloscope, you might want to try and view / record some of the serial interactions that are being sent over the bus. Otherwise, If you don't I would read the wikipedia article to get more information about i2c. There is a lot more information out there too, but the arduino has the ability to communicate over i2c.

If this is too complicated for you, you can also use the NXT as a "translator" device by sending the NXT direct bluetooth commands. A quick and complete guide of the Bluetooth commands can be read here:http://www.robotappstore.com/Knowledge-Base/Programming-LEGO-NXT-Mindstorms/92.html

You will have to get a serial to bluetooth dongle such as this one:http://www.trossenrobotics.com/p/bluetooth-modem-bluesmirf-gold?feed=Froogle&gclid=CNro16v6krICFWWCQgodyTAATQ

to do that, and just based on economics, you might be better off getting a PING(( sensor. Either way, there is a lot of information out there and if you have any questions, let me know!