I created a group instance, and the empty for it appeared at the cursor, but the group is way off to one side. I saw that the objects in the original group had scaling that hadn't been applied with Ctrl+A, so I removed them all from their group, applied the scale, and created a new group with them in it. But when I tried again to create the group instance, it did the same thing. The origins of the original items are in a logical spot, so that's not it. What could be wrong?
No need to apply scale and location of your objects, nor recreate the groups.
You need to manually set the center of your group, which by default if unspecified will be the world coordinate [0,0,0].
You can check this by selecting any object belonging to a group original (not one of its instances) and under the Properties Window > Object > Group see the coordinates there.
To manually set it to a desired location either introduce coordinates manually, or place the 3D cursor at the point in the scene where the center should be, press the small arrow at the desired group and choose Set Offset from Cursor