See this similar discussion:
http://forums.arcgis.com/threads/54102-Spatial-join-tool-vs.-right-click-spatial-join-producing-diff...
<SNIP>
One workaround (if you want to continue using Spatial Join) would be to uncheck 'Keep All Target Features' parameter on tool dialog or use 'KEEP_COMMON' option in script.
See this similar discussion:
http://forums.arcgis.com/threads/54102-Spatial-join-tool-vs.-right-click-spatial-join-producing-diff...
I have confirmed that we introduced a bug in 10 Sp4. Really sorry about that! The problem will be fixed in 10 SP5.
Just FYI (according to my colleague):
The tool works fine if all input points find spatialy related polygons (i.e. Join_Count > 0). The problem happens when a point is encountered without any related (e.g., INTERSECT) join features, all subsequenct records in the output gets null values from the join features. One workaround (if you want to continue using Spatial Join) would be to uncheck 'Keep All Target Features' parameter on tool dialog or use 'KEEP_COMMON' option in script.
I have confirmed that we introduced a bug in 10 Sp4. Really sorry about that! The problem will be fixed in 10 SP5.
This happens with the default field mapping.