If the attacker can make related-key chosen-plaintext queries, then there is a generic attack that can break any block cipher with $n$-bit keys in $2^{n/2}$ time, using $2^{n/2}$ related-key queries and $2^{n/2}$ memory. So against a related-key attacker, the effective strength of a block cipher can be no more than half the key length.
However, the related-key model is controversial. Putting aside the plausibility of such an attack model, related-key attackers can sometimes be "too powerful". For example, if you permit a related-key attacker to transpose individual bits of the key (i.e. request the encryption of a message under both $K_1$ and $K_2$, where $K_2$ equals $K_1$ with bits $b_x$ and $b_y$ swapped), then the attacker can easily recover the $n$-bit key with just $n-1$ requests, using the following attack: swap bits $b_0$ and $b_1$ and see if that makes a difference in the output ciphertext (if it does, then $b_0 \neq b_1$, and $b_0 = b_1$ if it doesn't); repeat with bits $b_1$ and $b_2$, and so on for each of the $n-1$ adjacent pairs of bits; then at the end you only have to guess the value of a single bit (e.g. $b_0$) and you have the entire key. A similar devastatingly fast attack exists for a related-key attacker who is permitted to make requests using both 'xor' differences (i.e. $K_2 = K_1 \oplus \Delta$) and 'additive' differences (i.e. $K_2 = K_1 + \Delta \mod 2^w$, for some word length $w >1$).
So you have to be careful about what kind of relations you permit the related-key attacker to request. The attack I mentioned in the first paragraph exists in what is perhaps the least controversial model - where the attacker can use 'xor' differences only. The attack is as follows:
Versus a block cipher with an $n$-bit key, initialize a $n/2$ bit counter $X$ at zero, choose some particular fixed plaintext P, and do this loop:
while $X < 2^{n/2}$:
- Request $E(P,K \oplus X||0^{n/2})$ from the Challenger/Oracle, where $E(x,y)$ is the encryption of $x$ under the key $y$, $||$ denotes concatenation, and $0^{n/2}$ is a string of zeros of length $n/2$.
- Store resulting ciphertext in an array of size $2^{n/2}$ at index $X$.
- Let $X = X + 1$.
Once the loop is done, then initialize another counter $Y$ at zero and do this loop:
while $Y < 2^{n/2}$:
- Compute $E(P, 0^{n/2}||Y)$.
- Check the resulting ciphertext against the array (using e.g. hash table collision-checking), to see if there is a collision with any of the stored ciphertexts. If there is a collision with an element of the array at index $X$, then with overwhelming probability the secret key is $X||Y$.
- Let $Y = Y + 1$.
This will find the key with probability 1. You can also invert the two loops, i.e. pre-compute $E(P, 0^{n/2}||Y)$ and store the results in an array before the online attack, and check the 'requested' outputs against that array.