I posted something like this in the old forums on blender.nl, so I’ll try to reconstruct it here. This is the way that I do it, and I’m kind of a procedural maniac, so I’m pretty sure that I have this optimized.
I start from a reference pic (or pics) placed in the background (pic of a skeleton if available).
In edit mode, create your bone structure. Match it up with your reference within edit mode (purple/magenta). Pose mode (blue) is a long way away. If it is not so in your reference picture, extend all the limbs, but bend all of your joints very slightly in the way that you want them to bend later. Name all of your bones appropriately.
2a. If you plan to use IK, remember to include two extra bones for each IK limb. One is just an extra bone on the end of the limb (IK linked) for use as the contrained object later. The other bone has the same origin as the former, but will be your IK solver object.
Go into pose mode and start linking everything up. If you find that something is not fitting quite right, DO NOT DARE adjust the layout of the bones in pose mode. Not even a smidge. Return to edit mode and adjust it there. When you’re done, go back into pose mode. Sometimes as you work, you’ll see that instead of one of the animation constraints, several of the bones would be best suited with a simple parent/child relationship. If that is the case, return to edit mode and do it there.
Build your mesh around this bone structure. Why so late in the game? In my opinion, it’s not even worth buliding a mesh until you have a working armature rig. How will you know where to put more or less detail in your model without seeing how the bones deform? I find it that can sometimes be impossible to retrofit an improperly modelled object with a properly working rig.
4a. I use subsurfs almost exclusively for character animation. Why? The much lower vertex count dramatically speeds up both setup and revision time when assigning vertex groups and uv mapping. Also, if you are using multiple copies/variations of the model in your anim, you can adjust the subsurf level based on how close to the camera they are. Name your vertex groups to match the bone setup from step 2.
Conclusion: Basically, if you want things to work out for you bone-wise (and who doesn’t?) remember this simple rule: Pose mode is for bulding animation constraints and for posing. You’ll do most of the heavy lifting in edit mode.
Hope this helps.