Do you have to have two servers to put Exchange 2010 on the Internet?

It's perfectly fine to have a single server with the Mailbox, CAS and Hub Transport roles on it. Just go through Configure Internet Mail Flow Directly Through a Hub Transport Server on TechNet to make your CAS server capable of sending and receiving email to the internet.

The Edge Transport server is totally optional and if you have some sort of other hardware firewall device, that's also perfectly fine to sit in front of your Exchange server in place of TMG or ISA Server.