A follow up.
I successfully installed Lenny. Instead of creating my partitions manually, I simply asked for an automated partition.
In the process, I had to remove the last two partitions definition - /tmp and /home - because the install couldn't create them and move ahead into the install process (a problem I already had with my previous successful installation, so apparently it's not an SD card thing).
This is what my new system is giving me now:
/dev/mmcblk0p1 * 33 7520 239616 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/mmcblk0p2 7521 16064 273408 83 Linux
Partition 2 does not end on cylinder boundary.
/dev/mmcblk0p3 16096 80544 2062337 5 Extended
Partition 3 does not end on cylinder boundary.
/dev/mmcblk0p5 16097 57472 1324032 83 Linux
/dev/mmcblk0p6 57505 74016 528384 83 Linux
/dev/mmcblk0p7 74049 80544 207872 82 Linux swap / Solaris
I had numerous I/O errors on the first run, then after rebooting, dmesg was a lot cleaner.
I'm not quite sure about the cylinder boundary thing. I will definitely hook up a USB drive for the main partitions.
Basically, I don't know what's the difference between the bootable partition it gave me and the one I created manually before.
It's automated partitionning for now on unless someone has a better explanation of what happened during my failed operations.