This problem is addressed in ArcGIS 8.1 Service Pack 1. See the Related Information section to download this pack.
When performing a join by location, only some of the features that should be in the output are added to the output layer.
This is caused when there are empty shapes in the layers involved in the join. Empty shapes can be common in layers created from route event sources.
If possible, find the records with the empty shapes and remove them. Another option is to export to a new layer without the empty shapes.
You can use the select features tool to select records with nonempty shapes. To do this, drag a rectangle over all features in the layer. Only the nonempty features are selected.