Unfortunately there is no cheap way to do this.
The only companies with which you will be able to do this are the big global car hire firms such as Avis, Hertz, Europcar. The one way drop of fee will be substantial as this will be classed as inter-country drop-off.
I would suggest that you best bet would be to take public transport From Faro to somewhere like Ayamonte just over th border in Spain and then pick up a hire car there.
Auriga Crown Car Hire have offices in Islantilla near Ayamonte and Malaga.
Contact Details are:
Islantilla
Address: Calle Islantilla Local B-4
Post code: 21410
City: Huelva
Province: Huelva
Country: Spain
Telephone number: 959 646 075
Mobil: 619 038 947
Fax: 959 646 049
E-mail address: huelva@aurigacrown.com
Manager: Juan Carlos Moreno
You might be able to contact them and they may be able to meet you in Ayamonte.
To get to Ayamonte from Faro, you can take the train to Vila Real Stª. Antonio and then the ferry to Ayamonte or Bus from Faro to Ayamonte.
See these posts on my blog for more info:
http://barlaventostravelblog.blogspot.com/search?q=Faro+Malaga
and
cubsur's excellent site at:
http://thomasallen.home.sapo.pt/travel/001.htm