You all are probably aware by now that to avoid flickering in tilemaps and avoiding other weird texture artifact issues you need to add a 1-2 pixel border of transparency around your image.
I think this all has to do with the way texture coordinates were always defined as being 0,0 to 1,1 mapping directly with the pixel coordinates 0,0 to w,h.
Actually, the correct mapping for a full image is as follows:
// (w = width, h = height of the image in pixels)
1/(2*w), 1/(2*h) to ((2*w)-1)/(2*w), ((2*h)-1)/(2*h)
For example an image that is 320x480 the texture coordinates to map 100% of the image exactly to texels would be:
1/640, 1/960
to
639/640, 959/960
This would also apply to the coordinates used for texture atlases (including zwoptex exported plists).
The correct texture mapping for a given rect (rx, ry, rw, rh) in an image of size w x h is:
// rect origin is zero based so the top left pixel is 0,0
((2*rx)+1)/(2*w), ((2*ry)+1))/(2*h)
to
(((2*rx)+1)+(rw*2)-2)/(2*w), (((2*ry)+1))+(rh*2)-2)/(2*h)
For example an atlas of size 256x256 that contains a sprite image at 10,10 with size 100x100 the correct texture coordinates for each vertex are as follows:
21/512, 21/512
21/512, 219/512
219/512, 219/512
219/512, 21/512
NOTE: I'm sure the equations can be factored a bit to reduce the number of calculations, but these are expanded to show how all of the pieces are translated from pixel space to texel space.
BTW: I got the idea after reading chapter 5 of the iPhone 3D Programming book on oreilly labs:
http://iphone-3d-programming.labs.oreilly.com/ch05.html
See this illustration:

Note: Zwoptex files won't need to be modified, this can be handled 100% in the cocos2d engine.
Note: I've opened an issue here:
http://code.google.com/p/cocos2d-iphone/issues/detail?id=938