You could set up your iPart table with a key column for the custom length and a key column with options such as "Standard" and "Custom". This allows the user to choose whether the custom or standard length is desired, and it also tells the part which parameter (column) to use to calculate the length.
For example, if you want a custom length, you would enter a custom value and choose "Custom" (you would also need to pick a standard length, but this pick would be trivial). Then, when the part is placed, because you chose "Custom", it would use the custom length. If you choose "Standard" instead, then the part would use the standard length.
The only way to make this happen would be to have two extrusions--one using the standard length parameter, and one using the custom length parameter. Then you would have columns in your iPart table that would suppress one and compute the other, depending on the choice of "Custom" or "Standard". Does this make sense?
Your iPart table would have rows for each of the sizes, because the formula for the recommended length is based on the hole spacing, and the hole spacing depends on size. I didn’t understand when you said there are three lengths to choose from. Seems to me there are two: the desired custom length and the recommended length from the formula. What is the third length choice?
I wish I could give you a part that demonstrates what I'm talking about, but I don't have 2010.
This is what I started to do. But it's not easy. If you have custom length then you have custom hole spacing or standard hole spacing, so this complicates the whole thing. But this method will work eventualy, the only thing is that it takes more time to build.
I have three tipes of lenths because on some sizes the vendor gives me the option to choose between desired length, an upper standard length and a lower standard length.