There's nothing wrong with adding position:relative to an element and even in IE7 and under its hardly a big issue (as long as the element has haslayout). Indeed position:relative triggers a better layout algorithm and will indeed fix some of the haslayout bugs as a bonus. However for position:relative to work properly in IE7 and under the element must be in haslayout mode.
The only issue with position:relative is that in IE7 and under they automatically apply a z-index of zero to positioned elements when in fact they should apply the value auto (which Ie7- doesn't actually understand).
If the element has an auto z-index then its stacking context is not 'atomic' which means that positioned children can react to the z-index of elements outside this current context. However once you apply z-index:0 to the parent then all children are trapped within the z-index of the parent and although they can react with each other then can never escape the parent or get behind the parent's background.
This is the only problem with adding position:relative to a container in IE7 and under (as long as the element has a layout). In all other browsers it will make no difference whatsoever apart from its intended use.
As I stated above the demo is only IE8+ because IE7 and under don't understand :after and also don't understand how to position using all 4 co-ordinates at the same time. For an effect such as a border that's a small price to pay for neater code :)