Why can I tether to Ubuntu for free but not Windows? I have a Motorola Droid 1 with Android 2.2 on it. I found something odd that I don't understand why it works.

If I plug my phone into my home computer which is Windows 7 and I turn on the tethering ability, I am met with a Verizon captive portal and it tells me I need to pay for a tethering plan (which I don't have).

Now the weird thing, if I plug the same phone into my Ubuntu 10.10 laptop and enable tethering it works and can get on the internet with no captive portal showing up.

The only thing I could notice that was different about the connections was Windows connected to the phone with an NDIS driver and Linux connected to the phone with what I think is a raw device mapping.

Would that have anything to do with it?
A lot of mobile network operators perform network analysis (deep packet inspection) of all transfered data. In that way they are able to identify which protocols are used. 

Identifiable protocols that indicate a desktop PC are for example:


Windows Update
Virus scanner update
Broadcasts sent by Windows


Another very easy and common way to identify the system is to read the UserAgent string the web-browser sends in each request. There are add-ons available for Firefox to fake the user-agent may you should try it and fake your browser to something unknown.