(Sorry about the late answer,.. I had other things that needed doing)
Forcing 4 x 3 does stretch it a little, but it would be completely unnoticeable if it wasn't for little, vertical, black bars that came up on the sides of VLC (I was expecting something like this, since the movie isn't truly 640 x 480, I shrunk it to 608 x 448). It's no where near as stretched as it is from the GP2X.
(in the end, I could tell more difference between it and the TV out picture, than it and the LCD picture)
I've been adjusting my encodings to squish the aspect down, So this isn't really a problem of playing ugly videos on my GP2X, it's just something I've been wondering about (The biggest problem of it is that I have to do two separate encodes for my movies.. one for the computer, and one for the GP2X.. but I can live with that pretty easily)
I used the photo viewer on the TV and they look the same as they do on the LCD (or shown with any other device) so I doubt it's hard ware.
I checked the source movie, and it had no black lines (truly full screen, I'm going to set up an encode for tonight and have everything remain as close to the source as possible and see how it looks) But for now I'm pretty sure it's still not the encoding.
And since this was never complained about before then I'm guessing I'm the only one with the problem, which means that it can't be a bug in the movie player.
Also, I use a NSTC 4 x 3 TV with an S-video in. (I've tried it with both a converter, and straight through the S-video). The TV is also hooked up to my computer, so I tested the movie with VLC straight on it, and it worked just fine.
Picture as proof:
(Thanks for the ideas. I'm still thinking,..)
I'm curious what Codecs you use, I've used both XviD and DivX to make sure I tried as many variations as I could think of (but I'm better with XviD, so I use that the most). In the settings I have options for optimizations for "MMX, Integer SSE, SSE, SSE2, 3D Now!, and 3D Now! 2" currently I have the optimizations set to "automatic" which could be a mess up, since It's probably detecting what my computer can do and is encoding the movie for it instead of the GP2X, but really I know nothing about this. Also I remember tinkering with an option I think was called pixel shape (I never noticed any change in how a movie looked though) I can't find the option now,.. I'm guessing it was on a previous version of the codec that I had before I updated (I am now using Nic's 1.1.0 build)