We had a similar problem where it was seeing numbers in the first load of rows and assuming it was a numeric column.
We fixed it by setting the following registry key:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]
"TypeGuessRows"=dword:00000000
(may have to do Jet 3.5 as well. I don't have Excel 2007 yet, so I don't know the key for this).
This forces it to look at all the rows before deciding what type it is, so there are probably performance implications.