Folks, I'm going to answer my own question on this but purely because I've spent all day researching everybody's answers above (which I appreciate very much and thank you), and I have come to some conclusions which I'd like to share:
There are issues with all of the techniques used to create shapes in CSS. The main issues are with stretching the content but keeping the triangular caps at the end a consistent size. The other issue was with drawing the shape with borders. The technique I eventually tried with some success was Harry's elongated hexagon link here : http://codepen.io/hari_shanx/pen/tsLza
This worked great for a while (although it did also distort the shape when stretching too). I then started to notice the cracks across different browsers. As we know, transforms cause all kinds of issues and I noticed that the transforms that create this effect were having a huge impact on depth sorting and positionings (I can't even begin to explain how messy it was).
So, I looked into a completely different method for this and ended up using border-image:
.hex_border_40 {
border: 20px solid transparent;
-webkit-border-image: url(../images/searchfield_bg.png) 20 stretch;
-o-border-image: url(../images/searchfield_bg.png) 20 stretch;
border-image: url(../images/searchfield_bg.png) 20 stretch;
}
The border image looked like this :

and the result looks like this:

There has been a styling change (in my favour) which is why it is now a dark grey background and I need to change the icon to white etc.
The benefits of this technique though is that no matter how much the central section of that element scales the end caps will be ok and not distort. Flash had a thing called 'scale-9' which allowed you to set a 9 cell grid image and choose which areas scaled and which stayed the same. We need something as robust as that for CSS.
Anyway, thanks for listening.