Looks like some weird conflict between U2 and your graphics hardware that's related to Direct3D (which U2 uses to 'talk' to your graphics hardware). Since U2XMP is divergent to U2 codebase-wise it's not surprising that the same problem doesn't occur with XMP, but also you'll likely find that the error is specific to only your precise setup.
Since you admit you're using a cracked copy, there's no guarantee that by cracking the executable you haven't somehow introduced some memory leak (caused by mis-matched libraries, whatever) or otherwise broken the game by altering it in ways which were not intended by the developers. Discussion of cracking unreal2/xmp has always been something of a moot point on this (and indeed many) forums, and you're unlikely to get any serious responses due to your open disclosure of the fact that you're trying to play the game for free.
I'd suggest that the first thing to check would be to see whether the game runs properly sans crack. This may mean removing/re-installing it. If the problem goes away, you know you're not going to be able to play it without the play disc. However, if the problem persists then at least you can check other things without the chance that you're chasing a lost cause.
As far as other things to check go, it may be worth ensuring that your DirectX is up to date (9.0c being the latest release I believe), and the same for your graphics drivers. From the error you stated it would appear that U2 is somehow arguing with DirectX and causing it to break after a while: checking that these things are up to date should be your first check.
If you are certain that the above is true, and everything that can be up to date is up to date, then it's time to experiment with settings within U2. Vertex caching for smeshes happens at level startup, and whenever the graphics mode is changed (this includes switching from full-screen to a window and vice versa). If changing the graphics mode when the errors occur brings the missing objects back then chances are it's a memory leak or similar problem, or the graphics hardware isn't correctly displaying the meshes it has in memory. This could be due to a faulty card or driver, or due to the aformentioned conflict (reason would be impossible to determine) between U2 and your graphics hardware or driver. If changing the mode doesn't help then the caching may not be happening properly or at all, in which case it may simply be a faulty U2 installation or a broken package somewhere; re-installing the game would be favourite at that point.
Can't think of anything else really, guess you may just be stuck with XMP. Trust me, that's a long way from being the worst situation to be in: XMP is by far the best multi-player game ever created, and is well worth the money for Unreal2 just on it's own. The learning curve can seem steep to begin with, but the pay-off is amazing. See the stickies in this forum for advice about how to get XMP working (it - like Unreal 2 - has been unsupported for some time, but the community strive to keep it alive).
Good luck.
(PS. resisted the urge to write
Good luck, freeloader..., I must be in a nice mood today
)