Smooth Shading on specifically-oriented edges
As of this commit (will be in blender 2.71), blender has support for split normals. You can download 2.71 release candidate 2 here.


Set your object to smooth shading.
Enable auto smooth in Properties > object data:


Select every edge loop and mark it as sharp:


Press CtrlAltRMB on one of edge loops you want to make sharp to select that edge ring.
Press Edge Loop in 3D view > Header > Select to select the rest of the loops.
Press Sharp in 3D view > Tool shelf > Shading / UV > Shading > Edges, or press CtrlE> Mark Sharp:





Result: