How would I go about adding 3g wireless capability to an embedded project? Initially I thought about just using a USB host controller and purchasing a USB 3G card. This idea however seems "hackish" and not permanent. What would be the best way to do this?
You can use a solderable 3G module with serial interface.
I recently completed a design using the AirPrime SL series from Sierra Wireless. They provide 3GPP HSPA+/GSM and EV-DO/CDMA in various modules that are pin-compatible. They can be interfaced using AT-type commands via a UART.
I would have to agree with tcrosley. I've used a few different 3G modules (from different manufacturers) and Sierra Wireless has really great documentation for both integration and interfacing. Additionally, they don't seem to require a lot of additional components to get it running properly. I've run them from both the USB interface and a UART interface with success.
You just have to be prepared to add some space to your PCB for the module, antenna, and appropriate spacings to reduce the risk of interface. The SL8080T is their new low-cost module with embedded GPS if you're into that sorta thing.