В FireFox символ мягкого (необязательного) переноса &shy; работает, похоже, только в блоках фиксированной ширины. В резиновых таблицах его наличие никак не проявляется — ячейку разносит вширь. Возможный вариант решения — использовать пару <wbr/>&shy; и wbr{display: inline-block} в CSS (специально для Оперы). Валидатор XHTML, конечно, ругается, ну и пусть его!