I literally just got home from work (I haven't been laid off just yet), so this might not be 100% lucid, but here goes...
1. What are the names of your textures? Do they have the same name as any EQ textures? I've seen cases where fire textures (fire1.bmp, fire2.bmp, etc.) get replaced by the standard EQ fire textures ingame. This actually turned out to be a bonus in that case, though. In any event, what I saw ONLY happens with placed objects (from the mesh library), not with anything else.
2. Are you using the textures from the texture packs I released or are you using your own? I know for a fact that the texture pack textures work. The reason I ask this is related to #1, above (potential name conflicts). I'd be shocked if the client did this for standard zone geometry, but you never know, I suppose.
3. You only need to export to .S3D, not to .WLD. Exporting to .S3D does everything for you: it constructs the .WLD files in memory and packs them and all of the needed textures into .S3D files. All you should ever have to do is export the .S3D files and copy them to your EQ client folder.
4. Make sure that your textures are in the right folder. I generally put them in library/textures, but you can use zone-specific folders under /textures if you want--it just means that they have to be referenced that way in your .SCN file. Generally, if you can see the textures in OpenZone then you should see them ingame.
One thing you can do as a sanity check is try the sample zones I distributed: zone1.scn, for instance, expects to see the textures from the texture packs in the library/textures folder. You can load it, immediately export it to something like zone1.s3d (and its associated .s3d files) and test it ingame. Make sure to add an entry for it in your database if you try this.
5. If you placed any scripted objects (objects where you set the textures in the parameter window on the left), make SURE that the texture is explicitly set at least somewhere for each object. By this I mean that you should NEVER have objects where all of the texture names are in parentheses (default values). OpenZone has a weird way of randomly assigning the texture from a different object if you don't explicitly set at least one texture (heck, for all I know I wrote it this way a million years ago). An example of what I mean is if you place a box and don't set any of the texture drop-downs: sometimes the box will take on the texture of another object in the zone. Make sure it's explicitly set at least somewhere. Most if not all scripts are coded such that the first texture parameter sets all of the others: parameters can serve as default values for other parameters if they don't have explicit values of their own. This is to balance the desire to set up scripted objects quickly with the need for flexibility and customization.
6. Make sure that you don't have ANY textures from SOE zones anywhere in library/textures or any subfolders. It's illegal to distribute them and this is the only way to avoid mistakes. The purpose of the texture packs was to give users a good enough head start that no more textures would be needed--at least at first.
Hmmm. I can't think of anything else off the top of my head. Exporting is designed to be dead easy--once you do it a couple of times you'll get the hang of it (suggestions are ALWAYS welcome, though).
WC
P.S. As a side note, an EXCELLENT program for making textures is Texture Maker, which you can find at
http://www.i-tex.de. It has a shareware version and a registered version, and it's what I used to make the textures in the texture packs (except the trees, which were one serious royal pain). I bought the registered version, and I can honestly say it's worth every penny if you're serious about zone-building.