В зависимости от вашей ситуации и от того, какие браузеры вы хотите поддерживать, это работает (протестировано в IE7-8, Firefox):
background: url(...) no-repeat right 50%; border-right: 4px solid transparent;
Конечно, если вы уже ставите границу справа, это вам совсем не поможет.
Добавлено при редактировании: Если вышеприведенное не сработает, потому что вы используете границу, и вас не волнует IE7 (не уверен, что мы пока что вполне готовы) значок "ширина известен, тогда вы могли бы сделать:
.yourContainer {
position: relative;
}
.yourContainer:after {
content: ' ';
display: block;
position: absolute;
top: 0;
bottom: 0;
right: 4px;
width: 10px; //icon width
z-index: -1; //makes it act sort of like a background
background: url(...) no-repeat right 50%;
}