This isn't 100% a direct answer, but as I just fought through a similar problem in my bibliography, here's my approach. It uses the ragged2e package, which defines a \RaggedRight command that still permits hyphenation -- and crucially for me at least, that includes hyphens inside urls (when using the url package). I decided to enable \RaggedRight only for @electronic items (whose main contents are a short title and a wicked-to-linebreak url), and defined my own .bst file. It's a copy/paste/modify from abbrvnat.bst, and here's the relevant excerpt:
FUNCTION {electronic}
{ output.bibitem
url empty$ 'skip$ { "\begin{FlushLeft}" write$ newline$ } if$
format.authors output
new.block
format.title "title" output.check
year empty$ month empty$ day and and
'skip$
{
new.block
format.date output
}
if$
new.block
format.url output
note empty$ 'skip$
{
new.block
note output
}
if$
fin.entry
url empty$ 'skip$ { "\end{FlushLeft}" write$ newline$ } if$
}
.bst files are tricky beasts, but the upshot of this code is, if there is a url, then I surround the contents of the entry with a FlushLeft environment, which enables \RaggedRight on this paragraph -- and only this paragraph.
To use the execute field, as @UlrikeFischer suggested, you could redefine output.bibitem and fin.entry to check for the execute field and output it:
% in output.bibitem
execute empty$ 'skip$ "\begingroup" execute * write$
% in fin.entry
execute empty$ 'skip$ "\endgroup" write$
Then your execute field could contain \RaggedRight and you'd get the same effect as my code above, but for all .bib items that you annotated. It's not quite the automatic "overfull hbox" solution, but it might be useful anyway.
executefield in the bib-entry to insert the code (untested as you didn't provide a small example to play around with). – Ulrike Fischer May 18 '11 at 09:12