This looks like a problem where interpolation could be a useful tool. I'll illustrate some different properties of the partition you can capture, starting with the simplest case.
Suppose the whole interval in question is $[a,b]$, which is divided at some point $c$ in the interval. We partition the subinterval $[a,c]$ into $m$ equal parts, and the subinterval $[c,b]$ into $n$ equal parts.

We want to "smooth" the interval out in some way. Well, we could start by only caring about the total number of subintervals, $m+n$. Then we just divide the interval $[a,b]$ into $m+n$ equal parts. But that's not very satisfying.
Instead, let's take into account the sizes of the original partitions. At the very least we can keep the first and the last partitions the same size as they were when we rescale. Now, wouldn't it be nice if we could just make a function that would give us the endpoints of the $n^{\text{th}}$ partition when we plug in $n$? What properties would we want this function to have? Well, we would need it to start at $a$, so $f(0) = a$. And, as we said, we want it to fix the length of the first partition, so we want $f(1) = a + (c-a)/m$, which is the length of the first partition. We also want it to fix the length of the last partition, so we need to fix its endpoints at $b - (b-c)/n$ and $b$. To recap, we want
$f(0) = a,$
$f(1) = a + (c-a)/m,$
$f(m+n-1) = b - (b-c)/n,$
$f(m+n) = b.$
We want the rest of the partitions to just smooth themselves out between these two, so we'll draw a simple smooth curve through these data points and be done with it. To do this, we'll find the interpolating polynomial (the Lagrange interpolating polynomial has a particularly straightforward form) for these points. It's easy in Mathematica:
InterpolatingPolynomial[{{0,a},{1,a+(c-a)/m},{n+m-1,b-(b-c)/n},{n+m,b}},x]
This returns
$f(x) = a+x \left(\frac{b-a}{m+n}-\frac{[b m+a n-c (m+n)] [(n-1) (m+n)+(m-n) x] (m+n-x)}{m n (m+n) (m+n-1) (m+n-2)}\right).$
The results are generally OK. Let's take $a=0$ and $b=100$ as in your example. Now, $c=80$, $m=2$, and $n=10$ is a little extreme, and this polynomial doesn't behave well in that case. Here are some other examples, where the red dots are the original partitioning and the blue dots are the rescaled partitioning.
$c=80$, $m=2$, $n=6$:

$c=50$, $m=2$, $n=9$:

$c=20$, $m=6$, $n=6$:

Generally the results are best the closer the original distribution is to completely uniform.
Now, we may also wish to keep the same number of partitions on either side of $c$. That is, if the original partitioning has $m$ partitions to the left of $c$ and $n$ to the right, we want the rescaled partitioning to do the same. So, on top of conditions (1)-(4) we had earlier, we also want $f(m) = c$, so that the $m^{\text{th}}$ partition ends at $c$. Let's also require that the $m^{\text{th}}$ partition has a length which is the average of the lengths of the first and the last partitions. That is, we want $f(m-1) = c - (n (c - a) + m (b - c))/(2 m n)$. In Mathematica:
InterpolatingPolynomial[{{0,a},{1,a+(c-a)/m},{n+m-1,b-(b-c)/n},{n+m,b},{m,c},{m-1,c-(n (c-a)+m (b-c))/(2 m n)}},x]
The polynomial it gives is pretty ugly, so I'll leave it out. Here are some examples:
$c=80$, $m=4$, $n=5$:

$c=50$, $m=14$, $n=5$:

$c=30$, $m=6$, $n=6$:

The results are a little weird sometmes but they retain more of the structure of the original partitioning than the earlier example. So I guess it depends on what you need.