I'm starting to use this form to access data in my module. (See comment #1.)
$node->field_test[$node->language][0]['value']
I thought that looked like a pretty good solution, but further down that same question I found this:
Don't assume that 'und' is for fields of entities without language, it is also for fields that are not translatable, and without the entity translation module that is all fields. Moreover, there are differences in this between the various 7.x versions of Drupal.
Better to use thefield_get_items()
function which will sort out for you under what language code the data is stored.
And now I don't know if what I'm using could break something down the road.