Jeśli zastosowałeś selektor :focus, to znaczy, że olałeś IE (do IE8 włącznie), bo tam to nie działa. Możesz więc olać IE6 oraz IE7 i skorzystać z własności outline zamiast border. outline działa z grubsza jak border, tyle że nie przesuwa elementu i nie wpływa na jego rozmiary.
Inna opcja to w momencie fokusu zmniejszyć margin-left: o 2px. Jeśli masz zero, to daj -2px. Zniweluje to działanie bordera (i może będziesz jeszcze chciał zmniejszyć o 2 margin-top).
Możesz też użyć pozycjonowania względnego (position: relative) i przesunąć element o 2px w dowolną stronę za pomocą left/top.
Sposobów jest sporo.