My two main sources of information are
The LEGO Hardware Developer Kit http://mindstorms.lego.com/en-us/support/files/default.aspx
TheCompBlog: Hacking the NXT http://www.thecompblog.com/2012/07/hacking-lego-nxt-part-1.html
-The latter is a decent guide if you're using an arduino. But take note that his schematics often show pins 2 and 3 connected to +5V instead of ground. Pins 2 and 3 are ground for all of the sensors except the button which is just a switch.
Have any suggestions? Is something difficult to understand, incorrect, or missing? Leave a comment and I'll see what I can do. I would like this instructables to be a comprehensive guide on using the BS2 with the NXT set. If you're using a different microcontroller and you're stuck, I may or may not be able to help but it doesn't hurt to ask.
I hope to get an arduino soon, and if this guide does well I will post a complimentary guide for using the arduino with sample codes for that. Let me know if you'd like that.