The NV2A packs dual vertex shaders, which was the main difference between the NV20 and NV25, it is much closer to a GF4 then it is a GF3(although both the NV2A and the GF4 are based on the GF3).
I think that considering the graphic quality of the game, the performance is bad.
Welcome to the world of pixel shaders. Seriously, none of the boards around are fast enough to handle an honestly heavy shader load that looks comparable to 'out of date' rendering techniques for the overwhelming majority of instances. On the XBox this trade off makes sense as it only has 64MB of RAM total, not like you can rely on a lot of high quality textures to carry you.
Considering that Max Payne looks significantly better (at least to me) and runs significantly better as well, I can't see denying that Halo is poorly coded.
It's not poorly coded(at least, that is certainly not the main issue it has with performance). Shut the pixel shaders off and your performance should more then double(significantly more in some areas). This is what we can expect with shader heavy games for the most part, there isn't a game out that uses as many shader effects as Halo that performs better.
but the game runs smoothly because TV's only need a resolution of about 640x480 to look decent.
The XBox version has framerate dips in to the teens regularly, single digits far too frequently for my tastes. I have both versions, and am running a GF4 and the PC port runs
much smoother. Being limited by a controller it doesn't drive you as nuts as it does with a M/KB setup as you are so much slower in a FPS anyway, but even with that amplifying the difference the PC port is a much smoother running game then the XBox native game. Also, the XBox version in running on a HDTV(480p, so an EDTV will do) does not look as good as the PC version running 640x480 with all settings cranked.