I'll put a full list in the next release, but you need to use any LBA48 BIOS except X2 4979 through X2 4983 (because X-ecuter did the LBA48 code on these and did not include the ability to read the table from the disk).
If the BIOS can read the partition table then it can boot with a changed C partition, though I don't really recommend changing C. The C partition's sectors are first on the disk so in order to change C you'd need to backup the entire disk. E is a good candidate for changing since, though it's partition 1, its starting sector is after the other standard partitions.
My E partition is currently 248GB and is working fine. However, I can't use a stock BIOS on this machine since the stock BIOS will think the E partition is the standard size. That's fine for me, because I never run a retail BIOS, but it's something you need to take into consideration.
The reason it can work is the partition table is always on sector 0 of the disk, so the kernel doesn't need to know anything about the filesystem in order to load the table.