There is one daily train service service from Badajoz to Lisbon as follows:(click on full screen to view.)
badajoz_lisboa_rail_timetable_2010
There are bus services as follows:
alsa.es
and
anibal.net
Timetable see:
http://bit.ly/lisbon_madrid_anibal
A final alternative would be to route via Faro in the Algarve.
There is one website that allows pick-ups in Spain with reasonable drop-offs at Faro Airport. They then offer pick-up of a Portuguese Hire car there as well.
See:
http://www.iberiacarhire.com/