Here's a tutorial for a fairly simple stretchy IK method. I'll probably update this later with more bells and whistles like locking knees and elbows, and more choices, but for now, here's a basic setup.
1. I started with a joint chain with an ik handle in it. Also a hand controller and a master control that would be the root control for the entire character.
2. Make a distance node by going to create-measureTools-distanceTool, and clicking on the first and last joints in the chain. This will create two locators and a distance dimension node between them. Parent the ik handle to the end locator, and parent that same locator to the hand control.
3. Create 3 new nodes either in the hypershade or the hypergraph. Two multiply divide nodes and one conditional. I named the muliply/divide nodes Left_Arm_Stretchy_Scale, and Left_Arm_World_Scale. And I named the conditional Left_Arm_Stretchy_Conditional.
4. Connect one of the scale attributes from the master control to Left_Arm_World_Scale.input1X, and set input2X to the whatever the default rest distance is on your distance node. (In this case it was 10.015, but it will vary depending on the size of your chain.) Set the operation to multiply. This makes it that so no matter what size you scale the whole character, the distance will always have the same relationship to the character.
5. Now connect Left_Arm_World_Scale.outputX to Left_Arm_Stretchy_Scale.input2X, and connect distanceDimensionShape.distance to Left_Arm_Stretchy_Scale.input1X. Set the operation to divide. The output of this node will be the actual scale. At default the output is 1, so for example, if you stretch the arm to double the length, the output will be 2.
6. At this point the stretching should work, but if you pull the controller closer to the body to bend the elbow, instead of bending, the joints will just shrink. So we now use the conditional to make the scale of the joints never go below 1. Connect the Stretchy_Scale.outputX to both the conditional.firstTerm, and .colorIfTrueR. Put 1 into the second term, and the colorIfFalseR, and set the operation to GreaterThan. Now if the distance is greater than it's default value, the output of the conditional will be whatever the scale value is. If it's less than the default, the scale will just be 1.
7. Connect the outputColorR of the conditional into the scale X on both the shoulder and the elbow joints.
8. To hook everything up into a hierarchy. group the shoulder joint and the locator at the beginning of the chain, and point constrain or parent them to the clavical tip joint. Now when you move that, the hand should stay in place, and the arm should stretch accordingly. Finally, parent everything under the master control. You can see the outlines in the picture as an example of the hierarchy- but this can all vary based on how the rest of the rig is set up.
9. To make it maintain volume and actually stretch, instead of just growing. Create another multiply/Divide node, and set it to divide. Connect the elbow.scaleX to the input new node's input2X, and set the input1X to one. Connect the outputX to elbow.scaleY and Z. So it will scale oppositely on these axes.
I'll update this some other time for some more features and different methods, but this should be a basic functional setup.